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

Org.BouncyCastle.Tls.TlsPskKeyExchange

(D)TLS PSK key exchange (RFC 4279).
namespace Org.BouncyCastle.Tls { public class TlsPskKeyExchange : AbstractTlsKeyExchange { protected TlsPskIdentity m_pskIdentity; protected TlsPskIdentityManager m_pskIdentityManager; protected TlsDHGroupVerifier m_dhGroupVerifier; protected byte[] m_psk_identity_hint; protected byte[] m_psk; protected TlsDHConfig m_dhConfig; protected TlsECConfig m_ecConfig; protected TlsAgreement m_agreement; protected TlsCredentialedDecryptor m_serverCredentials; protected TlsEncryptor m_serverEncryptor; protected TlsSecret m_preMasterSecret; public TlsPskKeyExchange(int keyExchange, TlsPskIdentity pskIdentity, TlsDHGroupVerifier dhGroupVerifier); public TlsPskKeyExchange(int keyExchange, TlsPskIdentityManager pskIdentityManager, TlsDHConfig dhConfig, TlsECConfig ecConfig); protected virtual void GenerateEphemeralDH(Stream output); protected virtual void GenerateEphemeralECDH(Stream output); protected virtual byte[] GenerateOtherSecret(int pskLength); protected virtual void ProcessEphemeralDH(byte[] y); protected virtual void ProcessEphemeralECDH(byte[] point); } }