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

Org.BouncyCastle.Tls.Crypto.Impl.BC.BcTlsMLKemDomain

namespace Org.BouncyCastle.Tls.Crypto.Impl.BC { public class BcTlsMLKemDomain : TlsKemDomain { protected readonly BcTlsCrypto m_crypto; protected readonly TlsKemConfig m_config; protected readonly MLKemParameters m_domainParameters; protected readonly bool m_isServer; public virtual bool IsServer { get; } public static MLKemParameters GetDomainParameters(TlsKemConfig kemConfig); public BcTlsMLKemDomain(BcTlsCrypto crypto, TlsKemConfig kemConfig); public virtual TlsAgreement CreateKem(); public virtual BcTlsSecret Decapsulate(MLKemPrivateKeyParameters privateKey, byte[] ciphertext); public virtual MLKemPublicKeyParameters DecodePublicKey(byte[] encoding); public virtual byte[] Encapsulate(MLKemPublicKeyParameters publicKey, out TlsSecret secret); public virtual byte[] EncodePublicKey(MLKemPublicKeyParameters publicKey); public virtual AsymmetricCipherKeyPair GenerateKeyPair(); } }