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;
    }
}