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

Org.BouncyCastle.Tls.AbstractTlsServer

Base class for a TLS server.
namespace Org.BouncyCastle.Tls { public abstract class AbstractTlsServer : AbstractTlsPeer, TlsServer, TlsPeer { protected TlsServerContext m_context; protected ProtocolVersion[] m_protocolVersions; protected int[] m_cipherSuites; protected int[] m_offeredCipherSuites; protected IDictionary<int, byte[]> m_clientExtensions; protected bool m_encryptThenMACOffered; protected short m_maxFragmentLengthOffered; protected bool m_truncatedHMacOffered; protected bool m_clientSentECPointFormats; protected CertificateStatusRequest m_certificateStatusRequest; protected IList<CertificateStatusRequestItemV2> m_statusRequestV2; protected IList<TrustedAuthority> m_trustedCAKeys; protected int m_selectedCipherSuite; protected IList<ProtocolName> m_clientProtocolNames; protected ProtocolName m_selectedProtocolName; protected readonly IDictionary<int, byte[]> m_serverExtensions; public AbstractTlsServer(TlsCrypto crypto); protected virtual bool AllowCertificateStatus(); protected virtual bool AllowEncryptThenMac(); protected virtual bool AllowMultiCertStatus(); protected virtual bool AllowTruncatedHmac(); protected virtual bool AllowTrustedCAIndication(); protected virtual string GetDetailMessageNoCipherSuite(); protected virtual int GetMaximumDefaultCurveBits(); protected virtual int GetMaximumDefaultFiniteFieldBits(); protected virtual int GetMaximumNegotiableCurveBits(); protected virtual int GetMaximumNegotiableFiniteFieldBits(); protected virtual IList<ProtocolName> GetProtocolNames(); protected virtual bool IsSelectableCipherSuite(int cipherSuite, int availCurveBits, int availFiniteFieldBits, IList<short> sigAlgs); protected virtual bool PreferLocalCipherSuites(); protected virtual bool SelectCipherSuite(int cipherSuite); protected virtual int SelectDH(int minimumFiniteFieldBits); protected virtual int SelectDHDefault(int minimumFiniteFieldBits); protected virtual int SelectECDH(int minimumCurveBits); protected virtual int SelectECDHDefault(int minimumCurveBits); protected virtual ProtocolName SelectProtocolName(); protected virtual ProtocolName SelectProtocolName(IList<ProtocolName> clientProtocolNames, IList<ProtocolName> serverProtocolNames); protected virtual bool ShouldSelectProtocolNameEarly(); protected virtual bool PreferLocalClientCertificateTypes(); protected virtual short[] GetAllowedClientCertificateTypes(); protected virtual byte[] GetNewConnectionID(); public virtual void Init(TlsServerContext context); public virtual TlsSession GetSessionToResume(byte[] sessionID); public virtual byte[] GetNewSessionID(); public virtual TlsPskExternal GetExternalPsk(IList<PskIdentity> identities); public virtual void NotifySession(TlsSession session); public virtual void NotifyClientVersion(ProtocolVersion clientVersion); public virtual void NotifyFallback(bool isFallback); public virtual void NotifyOfferedCipherSuites(int[] offeredCipherSuites); public virtual void ProcessClientExtensions(IDictionary<int, byte[]> clientExtensions); public virtual ProtocolVersion GetServerVersion(); public virtual int[] GetSupportedGroups(); public virtual int GetSelectedCipherSuite(); public virtual IDictionary<int, byte[]> GetServerExtensions(); public virtual void GetServerExtensionsForConnection(IDictionary<int, byte[]> serverExtensions); public virtual IList<SupplementalDataEntry> GetServerSupplementalData(); public abstract TlsCredentials GetCredentials(); public virtual CertificateStatus GetCertificateStatus(); public virtual CertificateRequest GetCertificateRequest(); public virtual TlsPskIdentityManager GetPskIdentityManager(); public virtual TlsSrpLoginParameters GetSrpLoginParameters(); public virtual TlsDHConfig GetDHConfig(); public virtual TlsECConfig GetECDHConfig(); public virtual void ProcessClientSupplementalData(IList<SupplementalDataEntry> clientSupplementalData); public virtual void NotifyClientCertificate(Certificate clientCertificate); public virtual NewSessionTicket GetNewSessionTicket(); } }