4 #ifndef _INC_cSSLServer_H
5 #define _INC_cSSLServer_H
11 #if defined(USE_SSL_SERVER)
35 #if defined(USE_SSL_SESSION_TICKETS)
41 #if defined(USE_SSL_SERVER_NAME_INDICATION)
44 #if defined(USE_SSL_KeyExchange_PSK_SOME)
49 HRESULT state_SSL_ServerHello();
51 HRESULT ReadSessionTicket(BYTE* buf,
size_t len);
52 HRESULT WriteSessionTicket(BYTE* pStart);
58 HRESULT parse_TLS_EXT_renegotiation_info(
const BYTE* buf,
size_t len);
60 #if defined(USE_SSL_KeyExchange_PSK_SOME)
61 HRESULT parse_KeyEx_client_PSKIdentity(
const BYTE* p,
const BYTE* end);
63 #if defined(USE_SSL_KeyExchange_RSA) || defined(USE_SSL_KeyExchange_RSA_PSK)
64 HRESULT parse_KeyEx_encrypted_pms(
const BYTE* p,
const BYTE* end,
size_t pms_offset);
67 #if defined(USE_SSL_ECDH) || defined(USE_Key_ECDSA)
68 HRESULT parse_TLS_EXT_supported_groups(
const BYTE* buf,
size_t len);
69 HRESULT parse_TLS_EXT_ec_point_formats(
const BYTE* buf,
size_t len);
71 HRESULT parse_TLS_EXT_MaxFragmentLength(
const BYTE* buf,
size_t len);
73 HRESULT parse_TLS_EXT_EncryptThenMac(
const BYTE* buf,
size_t len);
75 #if defined(USE_SSL_SESSION_TICKETS)
76 HRESULT parse_TLS_EXT_SessionTicket(BYTE* buf,
size_t len);
79 HRESULT parse_TLS_EXT_ExtendedMasterSecret(
const BYTE* buf,
size_t len);
80 HRESULT parse_TLS_EXT_TruncatedHMAC(
const BYTE* buf,
size_t len);
83 HRESULT parse_TLS_EXT_ALPN(
const BYTE* buf,
size_t len);
85 #if defined(USE_SSL_KeyExchange_Cert_SOME)
86 HRESULT parse_TLS_EXT_signature_algorithms(
const BYTE* buf,
size_t len);
88 #if defined(USE_SSL_ECDH) || defined(USE_Key_ECDSA)
92 size_t build_TLS_EXT_TruncatedHMAC(BYTE* buf);
94 size_t build_TLS_EXT_EncryptThenMac(BYTE* buf);
96 #if defined(USE_SSL_KeyExchange_DHE_RSA) || defined(USE_SSL_KeyExchange_DHE_PSK)
97 HRESULT parse_KeyEx_client_dh_public(
const BYTE* p,
const BYTE* end);
106 #if defined(USE_SSL_SERVER_NAME_INDICATION)
110 #if defined(USE_SSL_KeyExchange_PSK_SOME)
114 #if defined(USE_SSL_KeyExchange_PSK_SOME)
135 this->m_pCache = pCache;
138 #if defined(USE_SSL_SESSION_TICKETS)
#define GRAYSSL_LINK
Definition: GraySSLInt.h:25
INT32 HRESULT
_WIN32 style error codes. INT32
Definition: SysTypes.h:465
Definition: cSSLCipherSuite.h:28
Definition: cSSLMsg.h:139
Definition: cSSLSession.h:199
Definition: cX509KeyCrtPair.h:16
Definition: cSSLCommon.h:62
Definition: cSSLConfig.h:46
Definition: cSSLServer.h:26
size_t build_TLS_EXT_SessionTicket(cSSLMsgHandExt *pExt)
HRESULT state_SSL_SERVER_KEY_EXCHANGE()
void put_SessionCache(cSSLSessionCache *pCache)
Definition: cSSLServer.h:132
HRESULT state_SSL_SERVER_CHANGE_CIPHER_SPEC()
HRESULT state_SSL_ClientHello()
HRESULT state_SSL_CERTIFICATE_VERIFY()
HRESULT parse_SSL_ClientHello_v2()
HRESULT parse_TLS_EXT_server_name(const BYTE *buf, size_t len)
HRESULT state_SSL_CERTIFICATE_REQUEST()
cSSLServer(const cSSLConfig &rOpts) noexcept
ISSLServerExt * m_pSNICallback
Definition: cSSLServer.h:42
cSSLSessionCache * m_pCache
Server Session cache.
Definition: cSSLServer.h:33
void state_SSL_HANDSHAKE_WRAPUP()
HRESULT put_UseSessionTickets(bool bUseTickets)
size_t build_TLS_EXT_ExtendedMasterSecret(cSSLMsgHandExt *pExt)
ISSLServerExt * m_pPSKCallback
Definition: cSSLServer.h:45
cNewPtr< cSSLTicketKeys > m_pTicketKeys
allocated keys for ticket encryption
Definition: cSSLServer.h:37
void put_PSKCallback(ISSLServerExt *pPSKCallback)
HRESULT AddKeyCrt(cX509KeyCrtPair *pKeyCrt)
HRESULT state_SSL_ServerHello_DONE()
HRESULT state_SSL_CLIENT_KEY_EXCHANGE()
void put_SNICallback(ISSLServerExt *pSNICallback)
HRESULT SetPSKIdentity(const BYTE *psk, size_t psk_len, const BYTE *psk_identity, size_t psk_identity_len)
virtual HRESULT ProcessStreamPacket() override
SSL_CipherSuite_TYPE
Definition: SSLTypes.h:88
Definition: GraySSL.cpp:11
Definition: cSSLServer.h:18
virtual HRESULT OnCallback(cSSLServer *pSSL, const BYTE *pszName, size_t nSizeName)=0