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

#include <cSSLTransform.h>

Inheritance diagram for GraySSL::cSSLTransform:
GrayLib::cSSL

Public Member Functions

 cSSLTransform ()
 
 ~cSSLTransform ()
 
void SetZeroTransform ()
 
HRESULT Encrypt (cSSLMsgBuilder &rOut, SSL_VERSION_TYPE nVer, bool bEncryptThenMac, IRandomNoise *pRandom)
 
HRESULT Decrypt (cSSLMsgBuilder &rIn, SSL_VERSION_TYPE nVer, bool bEncryptThenMac)
 

Public Attributes

const cSSLCipherSuitem_pCipherSuiteDef
 
size_t m_nSizeKey
 < for Chosen m_pCipherSuiteDef More...
 
size_t m_nSizeMin
 min. ciphertext length More...
 
size_t m_nSizeIV
 IV length. More...
 
size_t m_nSizeFixedIV
 Fixed part of IV (AEAD) More...
 
size_t m_nSizeMac
 MAC length. effected by m_bTruncatedHMAC. More...
 
cSSLTransformSide m_enc
 (encryption) More...
 
cSSLTransformSide m_dec
 (decryption) 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]
 

Detailed Description

Session specific crypto layer

Constructor & Destructor Documentation

◆ cSSLTransform()

GraySSL::cSSLTransform::cSSLTransform ( )

◆ ~cSSLTransform()

GraySSL::cSSLTransform::~cSSLTransform ( )

Member Function Documentation

◆ Decrypt()

HRESULT GraySSL::cSSLTransform::Decrypt ( cSSLMsgBuilder rIn,
SSL_VERSION_TYPE  nVer,
bool  bEncryptThenMac 
)

Padding is guaranteed to be incorrect if:

  1. nSizePad >= rIn.m_nContLength
  2. padding_idx >= k_Content_Size_Max + this->m_nSizeMac

◆ Encrypt()

HRESULT GraySSL::cSSLTransform::Encrypt ( cSSLMsgBuilder rOut,
SSL_VERSION_TYPE  nVer,
bool  bEncryptThenMac,
IRandomNoise pRandom 
)

Encryption functions

◆ SetZeroTransform()

void GraySSL::cSSLTransform::SetZeroTransform ( )

Member Data Documentation

◆ m_dec

cSSLTransformSide GraySSL::cSSLTransform::m_dec

(decryption)

◆ m_enc

cSSLTransformSide GraySSL::cSSLTransform::m_enc

(encryption)

◆ m_nSizeFixedIV

size_t GraySSL::cSSLTransform::m_nSizeFixedIV

Fixed part of IV (AEAD)

◆ m_nSizeIV

size_t GraySSL::cSSLTransform::m_nSizeIV

IV length.

◆ m_nSizeKey

size_t GraySSL::cSSLTransform::m_nSizeKey

< for Chosen m_pCipherSuiteDef

symmetric key length. bytes

◆ m_nSizeMac

size_t GraySSL::cSSLTransform::m_nSizeMac

MAC length. effected by m_bTruncatedHMAC.

◆ m_nSizeMin

size_t GraySSL::cSSLTransform::m_nSizeMin

min. ciphertext length

◆ m_pCipherSuiteDef

const cSSLCipherSuite* GraySSL::cSSLTransform::m_pCipherSuiteDef

The documentation for this class was generated from the following files: