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();
public virtual bool PreferLocalSupportedGroups();
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();
}
}