Gray C++ Libraries  0.0.2
A set of C++ libraries for MSVC, GNU on Windows, WinCE, Linux
GraySSL Namespace Reference

Classes

class  cSSLClient
 
class  cSSLCommon
 
class  cSSLConfig
 
class  cSSLDebug
 
class  cSSLDebugFunc
 
union  uSSLPremasterSecret
 
class  cSSLHandshake
 
struct  ISSLServerExt
 
class  cSSLServer
 
class  cSSLTransformSide
 
class  cSSLTransform
 
class  cRandomTest
 
class  cRandomTestHash
 
struct  cSSLTestCert
 

Enumerations

enum  SSL_RENEGOTIATION_TYPE { SSL_INITIAL_HANDSHAKE = 0 , SSL_RENEGOTIATION = 1 , SSL_RENEGOTIATION_DONE = 2 , SSL_RENEGOTIATION_PENDING = 3 }
 
enum  SSL_AUTHMODE_TYPE { SSL_AUTHMODE_NONE = 0 , SSL_AUTHMODE_OPTIONAL = 1 , SSL_AUTHMODE_REQUIRED = 2 }
 
enum  SSL_RENO_LEGACY_TYPE { SSL_RENO_LEGACY_NO_RENEGOTIATION = 0 , SSL_RENO_LEGACY_ALLOW_RENEGOTIATION = 1 , SSL_RENO_LEGACY_BREAK_HANDSHAKE = 2 }
 
enum  GRAYSSL_ERR_t { GRAYSSL_ERR_MASK = 0x00FF }
 
enum  TestCommand_t { COMMAND_READ = 1 , COMMAND_WRITE = 2 , COMMAND_BOTH = 3 }
 
enum  GRAYSSL_RET_t { GRAYSSL_RET_1 = 1 , GRAYSSL_RET_2 = 2 }
 

Functions

HRESULT GRAYSSL_ERR1 (GRAYSSL_ERR_t b)
 
void GRAYSSL_LINK LoadAllCipherSuites ()
 
 UNITTEST2_CLASS (cRandomTest)
 
 UNITTEST2_REGISTER (cRandomTest, UNITTEST_LEVEL_Off)
 
 UNITTEST2_CLASS (cRandomTestHash)
 
 UNITTEST2_REGISTER (cRandomTestHash, UNITTEST_LEVEL_Lib)
 
 UNITTEST2_CLASS (cSSL)
 
 UNITTEST2_REGISTER (cSSL, UNITTEST_LEVEL_Common)
 
 UNITTEST2_CLASS (cSSLClient)
 
 UNITTEST2_REGISTER (cSSLClient, UNITTEST_LEVEL_Slow)
 
 UNITTEST2_CLASS (cSSLServer1)
 
 UNITTEST_REGISTER (cSSLServer1, UNITTEST_LEVEL_All)
 
void term_handler (int sig)
 
 UNITTEST2_CLASS (cSSLServer2)
 
 UNITTEST2_REGISTER (cSSLServer2, UNITTEST_LEVEL_All)
 
 TEST_MODULE_INITIALIZE (Initialize)
 
 TEST_MODULE_CLEANUP (Cleanup)
 
 UNITTEST2_CLASS (GraySSL)
 
 UNITTEST2_REGISTER (GraySSL, UNITTEST_LEVEL_Lib)
 

Variables

const HResultCode k_GraySSLCodes []
 Codes in FACILITY_GRAYSSL. More...
 
cOSModDyn g_Module (GRAY_NAMES "SSL")
 
const SSL_VERSION_TYPE k_SSL_VERSION_SUPPORT_MIN = SSL_VER_TLS_1_2
 
const char k_test_ca_list [] = ""
 
const cSSLTestCert k_TestCert
 

Enumeration Type Documentation

◆ GRAYSSL_ERR_t

Enumerator
GRAYSSL_ERR_MASK 

◆ GRAYSSL_RET_t

Enumerator
GRAYSSL_RET_1 
GRAYSSL_RET_2 

◆ SSL_AUTHMODE_TYPE

How do we deal with weird/bad certs ?

Note
On client, SSL_AUTHMODE_REQUIRED is the recommended mode. With SSL_AUTHMODE_OPTIONAL, the user needs to call get_VerifyResults() at the right time(s), which may not be obvious, while REQUIRED always perform the verification as soon as possible. For example, REQUIRED was protecting against the "triple handshake" attack even before it was found.
Enumerator
SSL_AUTHMODE_NONE 

Don't bother checking at all. peer certificate is not checked. this is insecure and SHOULD be avoided.

SSL_AUTHMODE_OPTIONAL 

peer certificate is checked, Allow to continue even if CA doesn't validate. Just warn.

SSL_AUTHMODE_REQUIRED 

peer must present a valid certificate, handshake is aborted if verification failed.

◆ SSL_RENEGOTIATION_TYPE

Enumerator
SSL_INITIAL_HANDSHAKE 
SSL_RENEGOTIATION 
SSL_RENEGOTIATION_DONE 
SSL_RENEGOTIATION_PENDING 

◆ SSL_RENO_LEGACY_TYPE

Legacy renegotiation types.

Enumerator
SSL_RENO_LEGACY_NO_RENEGOTIATION 
SSL_RENO_LEGACY_ALLOW_RENEGOTIATION 
SSL_RENO_LEGACY_BREAK_HANDSHAKE 

◆ TestCommand_t

Enumerator
COMMAND_READ 
COMMAND_WRITE 
COMMAND_BOTH 

Function Documentation

◆ GRAYSSL_ERR1()

HRESULT GraySSL::GRAYSSL_ERR1 ( GRAYSSL_ERR_t  b)
inline

◆ LoadAllCipherSuites()

void GRAYSSL_LINK GraySSL::LoadAllCipherSuites ( )

◆ term_handler()

void GraySSL::term_handler ( int  sig)

◆ TEST_MODULE_CLEANUP()

GraySSL::TEST_MODULE_CLEANUP ( Cleanup  )

◆ TEST_MODULE_INITIALIZE()

GraySSL::TEST_MODULE_INITIALIZE ( Initialize  )

◆ UNITTEST2_CLASS() [1/7]

GraySSL::UNITTEST2_CLASS ( cRandomTest  )

◆ UNITTEST2_CLASS() [2/7]

GraySSL::UNITTEST2_CLASS ( cRandomTestHash  )

◆ UNITTEST2_CLASS() [3/7]

GraySSL::UNITTEST2_CLASS ( cSSL  )

◆ UNITTEST2_CLASS() [4/7]

GraySSL::UNITTEST2_CLASS ( cSSLClient  )

◆ UNITTEST2_CLASS() [5/7]

GraySSL::UNITTEST2_CLASS ( cSSLServer1  )

◆ UNITTEST2_CLASS() [6/7]

GraySSL::UNITTEST2_CLASS ( cSSLServer2  )

◆ UNITTEST2_CLASS() [7/7]

GraySSL::UNITTEST2_CLASS ( GraySSL  )

◆ UNITTEST2_REGISTER() [1/6]

GraySSL::UNITTEST2_REGISTER ( cRandomTest  ,
UNITTEST_LEVEL_Off   
)

◆ UNITTEST2_REGISTER() [2/6]

GraySSL::UNITTEST2_REGISTER ( cRandomTestHash  ,
UNITTEST_LEVEL_Lib   
)

◆ UNITTEST2_REGISTER() [3/6]

GraySSL::UNITTEST2_REGISTER ( cSSL  ,
UNITTEST_LEVEL_Common   
)

◆ UNITTEST2_REGISTER() [4/6]

GraySSL::UNITTEST2_REGISTER ( cSSLClient  ,
UNITTEST_LEVEL_Slow   
)

◆ UNITTEST2_REGISTER() [5/6]

GraySSL::UNITTEST2_REGISTER ( cSSLServer2  ,
UNITTEST_LEVEL_All   
)

◆ UNITTEST2_REGISTER() [6/6]

GraySSL::UNITTEST2_REGISTER ( GraySSL  ,
UNITTEST_LEVEL_Lib   
)

◆ UNITTEST_REGISTER()

GraySSL::UNITTEST_REGISTER ( cSSLServer1  ,
UNITTEST_LEVEL_All   
)

Variable Documentation

◆ g_Module

cOSModDyn GraySSL::g_Module(GRAY_NAMES "SSL") ( GRAY_NAMES "SSL"  )

◆ k_GraySSLCodes

const HResultCode GraySSL::k_GraySSLCodes[]
Initial value:
=
{
#define GRAYSSL_ERR(a,b,c)
{ S_OK, nullptr },
}

Codes in FACILITY_GRAYSSL.

◆ k_SSL_VERSION_SUPPORT_MIN

const SSL_VERSION_TYPE GraySSL::k_SSL_VERSION_SUPPORT_MIN = SSL_VER_TLS_1_2

◆ k_test_ca_list

const char GraySSL::k_test_ca_list = ""

◆ k_TestCert

const cSSLTestCert GraySSL::k_TestCert
extern