![]() |
Gray C++ Libraries
0.0.2
A set of C++ libraries for MSVC, GNU on Windows, WinCE, Linux
|
#include <cSSLHandshake.h>
Public Member Functions | |
cSSLHandshake () | |
~cSSLHandshake () | |
HRESULT | ReadGroupDefs (UINT nGroupQty, const BYTE *p) |
void | SetHasherVer1 (SSL_VERSION_TYPE eVer, const cSSLCipherSuite *pCipherSuite) |
bool | SetHasherVer2 (SSL_VERSION_TYPE eVer, const cSSLCipherSuite *pCipherSuite) |
void | UpdateHandHashes (const BYTE *buf, size_t len) |
bool | SelectKeyCrt (const cSSLCipherSuite *pCipherSuite, SSL_VERSION_TYPE nVer) |
Public Attributes | |
SSL_Hash_TYPE | m_eSignHashType |
Hash algorithm for signature. More... | |
SSL_CERT_TYPE | m_eCertType |
Requested cert type. More... | |
SSL_Hash_TYPE | m_eHashTypeVerify |
Hash algorithm for Signature verify. More... | |
cKeyExDHM | m_KeyExchDHM |
DHM key exchange. More... | |
cKeyExECDH | m_KeyExchECDH |
ECDH key exchange. More... | |
cECPGroupPrefs | m_ECPGroups |
Supported elliptic curves. Server side only. More... | |
cX509KeyCrtPair * | m_pKeyCrtHand |
cX509KeyCrtPair * | m_pKeyCrtSNI |
key/cert list selected from m_pSNICallback More... | |
cHashMD5Builder | m_fin_md5 |
cHashSHA1Builder | m_fin_sha1 |
cHashSHA256Builder | m_fin_sha256 |
cHashSHA384Builder | m_fin_sha384 |
const ISSLHandshakeHasher * | m_pHasher |
pointer to static const interface based on SSL version. More... | |
SSL_Hash_TYPE | m_eHashChecksum |
BYTE | m_randbytes [64] |
random bytes. 32 + 32 More... | |
BYTE | m_premaster [sizeof(uSSLPremasterSecret)] |
premaster secret. k_MAC_Size_Max More... | |
size_t | m_nPremasterLen |
premaster length <= sizeof(uSSLPremasterSecret) More... | |
bool | m_bResume |
session resume indicator. Get Session from the SessionCache if i can. More... | |
SSL_VERSION_TYPE | m_nVerMax |
max. version client More... | |
bool | m_bTLS_EXT |
client extension presence TLS_EXT_ec_point_formats_PRESENT More... | |
bool | m_bNewSessionTicket |
use NewSessionTicket? TLS_EXT_SessionTicket More... | |
bool | m_bExtendedMasterSecret |
use Extended Master Secret? More... | |
Additional Inherited Members | |
![]() | |
static const size_t | k_PSK_Size_Max = 32 |
256 bits More... | |
static const size_t | k_MAC_Size_Max = 48 |
16 to 48. SHA-384 used for HMAC. like k_HashSizeMax More... | |
static const size_t | k_Number_Size_Max = 1024 |
Max reasonable size of a big number used for crypt purposes. 8k bits. like cBigInteger::k_SIZE_MAX. More... | |
static const size_t | k_Content_Size_Max = 16384 |
Size of content. >= k_MaxFragLens[MAX]. More... | |
static const WORD | k_MaxFragLens [SSL_MAX_FRAG_LEN_QTY] |
This structure contains the parameters only needed during handshake states. Handshake specific crypto variables
GraySSL::cSSLHandshake::cSSLHandshake | ( | ) |
GraySSL::cSSLHandshake::~cSSLHandshake | ( | ) |
Free referenced items in an SSL handshake context and clear memory
HRESULT GraySSL::cSSLHandshake::ReadGroupDefs | ( | UINT | nGroupQty, |
const BYTE * | p | ||
) |
bool GraySSL::cSSLHandshake::SelectKeyCrt | ( | const cSSLCipherSuite * | pCipherSuite, |
SSL_VERSION_TYPE | nVer | ||
) |
void GraySSL::cSSLHandshake::SetHasherVer1 | ( | SSL_VERSION_TYPE | eVer, |
const cSSLCipherSuite * | pCipherSuite | ||
) |
bool GraySSL::cSSLHandshake::SetHasherVer2 | ( | SSL_VERSION_TYPE | eVer, |
const cSSLCipherSuite * | pCipherSuite | ||
) |
void GraySSL::cSSLHandshake::UpdateHandHashes | ( | const BYTE * | buf, |
size_t | len | ||
) |
Update hashes during handshake. SSL_MSG_HANDSHAKE or v2 hello. ASSERT(this->isStateHandshake());
bool GraySSL::cSSLHandshake::m_bExtendedMasterSecret |
use Extended Master Secret?
bool GraySSL::cSSLHandshake::m_bNewSessionTicket |
use NewSessionTicket? TLS_EXT_SessionTicket
bool GraySSL::cSSLHandshake::m_bResume |
session resume indicator. Get Session from the SessionCache if i can.
bool GraySSL::cSSLHandshake::m_bTLS_EXT |
client extension presence TLS_EXT_ec_point_formats_PRESENT
TLS extension flags (for extensions with outgoing ServerHello content that need it (e.g. for RENEGOTIATION_INFO the server already knows because of state of the renegotiation flag, so no indicator is required)
SSL_CERT_TYPE GraySSL::cSSLHandshake::m_eCertType |
Requested cert type.
cECPGroupPrefs GraySSL::cSSLHandshake::m_ECPGroups |
Supported elliptic curves. Server side only.
SSL_Hash_TYPE GraySSL::cSSLHandshake::m_eHashChecksum |
SSL_Hash_TYPE GraySSL::cSSLHandshake::m_eHashTypeVerify |
Hash algorithm for Signature verify.
SSL_Hash_TYPE GraySSL::cSSLHandshake::m_eSignHashType |
Hash algorithm for signature.
cHashMD5Builder GraySSL::cSSLHandshake::m_fin_md5 |
cHashSHA1Builder GraySSL::cSSLHandshake::m_fin_sha1 |
cHashSHA256Builder GraySSL::cSSLHandshake::m_fin_sha256 |
cHashSHA384Builder GraySSL::cSSLHandshake::m_fin_sha384 |
cKeyExDHM GraySSL::cSSLHandshake::m_KeyExchDHM |
DHM key exchange.
cKeyExECDH GraySSL::cSSLHandshake::m_KeyExchECDH |
ECDH key exchange.
size_t GraySSL::cSSLHandshake::m_nPremasterLen |
premaster length <= sizeof(uSSLPremasterSecret)
SSL_VERSION_TYPE GraySSL::cSSLHandshake::m_nVerMax |
max. version client
const ISSLHandshakeHasher* GraySSL::cSSLHandshake::m_pHasher |
pointer to static const interface based on SSL version.
cX509KeyCrtPair* GraySSL::cSSLHandshake::m_pKeyCrtHand |
Current key/cert or key/cert list. On client: pointer to ssl->key_cert, only the first entry used. On server: starts as a pointer to ssl->key_cert, then becomes a pointer to the chosen key from this list or the SNI list.
cX509KeyCrtPair* GraySSL::cSSLHandshake::m_pKeyCrtSNI |
key/cert list selected from m_pSNICallback
BYTE GraySSL::cSSLHandshake::m_premaster[sizeof(uSSLPremasterSecret)] |
premaster secret. k_MAC_Size_Max
BYTE GraySSL::cSSLHandshake::m_randbytes[64] |
random bytes. 32 + 32