<PackageReference Include="BouncyCastle.Cryptography" Version="2.5.0" />

FrodoKEMExtractor

using Org.BouncyCastle.Crypto; namespace Org.BouncyCastle.Pqc.Crypto.Frodo { public class FrodoKEMExtractor : IEncapsulatedSecretExtractor { private readonly FrodoKeyParameters m_key; private readonly FrodoEngine m_engine; public int EncapsulationLength => m_engine.CipherTextSize; public FrodoKEMExtractor(FrodoKeyParameters privParams) { m_key = privParams; m_engine = privParams.Parameters.Engine; } public byte[] ExtractSecret(byte[] encapsulation) { byte[] array = new byte[m_engine.SessionKeySize]; m_engine.kem_dec(array, encapsulation, ((FrodoPrivateKeyParameters)m_key).privateKey); return array; } } }