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

PskTlsClient

using Org.BouncyCastle.Tls.Crypto; namespace Org.BouncyCastle.Tls { public class PskTlsClient : AbstractTlsClient { private static readonly int[] DefaultCipherSuites = new int[7] { 52396, 49207, 49205, 52397, 170, 178, 144 }; protected readonly TlsPskIdentity m_pskIdentity; public PskTlsClient(TlsCrypto crypto, byte[] identity, byte[] psk) : this(crypto, new BasicTlsPskIdentity(identity, psk)) { } public PskTlsClient(TlsCrypto crypto, TlsPskIdentity pskIdentity) : base(crypto) { m_pskIdentity = pskIdentity; } protected override ProtocolVersion[] GetSupportedVersions() { return ProtocolVersion.TLSv12.Only(); } protected override int[] GetSupportedCipherSuites() { return TlsUtilities.GetSupportedCipherSuites(Crypto, DefaultCipherSuites); } public override TlsPskIdentity GetPskIdentity() { return m_pskIdentity; } public override TlsAuthentication GetAuthentication() { throw new TlsFatalAlert(80); } } }