X448Agreement
using Org.BouncyCastle.Crypto.Parameters;
using System;
namespace Org.BouncyCastle.Crypto.Agreement
{
public sealed class X448Agreement : IRawAgreement
{
private X448PrivateKeyParameters m_privateKey;
public int AgreementSize => X448PrivateKeyParameters.SecretSize;
public void Init(ICipherParameters parameters)
{
m_privateKey = (X448PrivateKeyParameters)parameters;
}
public void CalculateAgreement(ICipherParameters publicKey, byte[] buf, int off)
{
CalculateAgreement(publicKey, buf.AsSpan(off));
}
public void CalculateAgreement(ICipherParameters publicKey, Span<byte> buf)
{
m_privateKey.GenerateSecret((X448PublicKeyParameters)publicKey, buf);
}
}
}