![]() |
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 Public Attributes inherited from GrayLib::cSSL | |
| 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