package org.bouncycastle.pqc.crypto.newhope; import org.bouncycastle.crypto.CipherParameters; public class NHAgreement { private NHPrivateKeyParameters privKey; public void init(CipherParameters param) { privKey = (NHPrivateKeyParameters)param; } public byte[] calculateAgreement(CipherParameters otherPublicKey) { NHPublicKeyParameters pubKey = (NHPublicKeyParameters)otherPublicKey; byte[] sharedValue = new byte[NewHope.AGREEMENT_SIZE]; NewHope.sharedA(sharedValue, privKey.secData, pubKey.pubData); return sharedValue; } }