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

#include <cSSLMsg.h>

Inherits GrayLib::cSSLMsg.

Public Member Functions

 cSSLMsgBuilder ()
 
 ~cSSLMsgBuilder ()
 
const BYTE * get_Ctr () const noexcept
 
BYTE * get_ContApp () const noexcept
 
void put_ContAppIvSize (size_t nSizeIv)
 
bool isCompleteMsg () const noexcept
 
void SetCompleteMsg () noexcept
 
bool InitMsg ()
 
void ResetMsg (bool bHandshake)
 
void UpdateHashV3 (cHashWrap &rHasher, const BYTE *pSecret)
 
void UpdateHmac (cHashWrap &rHasher, bool bEncrypt)
 
void UpdateHmacExtra (cHashWrap &rHasher, size_t nSizePad, BYTE nCorrect)
 
HRESULT ReadFill (cStreamInput *pReader, size_t nSizeExpect)
 
HRESULT WriteFlush (cStreamOutput *pWriter, bool bWait)
 

Public Attributes

size_t m_nIntIndex
 Amount of data read/written so far in m_pHdr. ( if !m_bCompleteMsg includes sizeof(cSSLMsgHeader) else just m_pCont data) More...
 
cSSLCtr m_Ctr
 Counter added to the hash. More...
 

Constructor & Destructor Documentation

◆ cSSLMsgBuilder()

GrayLib::cSSLMsgBuilder::cSSLMsgBuilder ( )

◆ ~cSSLMsgBuilder()

GrayLib::cSSLMsgBuilder::~cSSLMsgBuilder ( )

Member Function Documentation

◆ get_ContApp()

BYTE* GrayLib::cSSLMsgBuilder::get_ContApp ( ) const
inlinenoexcept

Content pointer can move in message depending on Ver >= SSL_VER_TLS_1_1 to skip Iv in application data mode.

◆ get_Ctr()

const BYTE* GrayLib::cSSLMsgBuilder::get_Ctr ( ) const
inlinenoexcept

◆ InitMsg()

bool GrayLib::cSSLMsgBuilder::InitMsg ( )

◆ isCompleteMsg()

bool GrayLib::cSSLMsgBuilder::isCompleteMsg ( ) const
inlinenoexcept

◆ put_ContAppIvSize()

void GrayLib::cSSLMsgBuilder::put_ContAppIvSize ( size_t  nSizeIv)
inline

Add space for Iv when we leave handshake and enter application data mode.

◆ ReadFill()

HRESULT GrayLib::cSSLMsgBuilder::ReadFill ( cStreamInput pReader,
size_t  nSizeExpect 
)

Fill the input message buffer from pReader. called by ReadRecord() or HELLO. state_SSL_ClientHello

◆ ResetMsg()

void GrayLib::cSSLMsgBuilder::ResetMsg ( bool  bHandshake)
inline

◆ SetCompleteMsg()

void GrayLib::cSSLMsgBuilder::SetCompleteMsg ( )
inlinenoexcept

◆ UpdateHashV3()

void GrayLib::cSSLMsgBuilder::UpdateHashV3 ( cHashWrap rHasher,
const BYTE *  pSecret 
)

SSLv3.0 MAC functions Only SSL_Hash_MD5 and SSL_Hash_SHA1 supported.

◆ UpdateHmac()

void GrayLib::cSSLMsgBuilder::UpdateHmac ( cHashWrap rHasher,
bool  bEncrypt 
)

◆ UpdateHmacExtra()

void GrayLib::cSSLMsgBuilder::UpdateHmacExtra ( cHashWrap rHasher,
size_t  nSizePad,
BYTE  nCorrect 
)

Process MAC then update for nSizePad afterwards to make total time independent of nSizePad

◆ WriteFlush()

HRESULT GrayLib::cSSLMsgBuilder::WriteFlush ( cStreamOutput pWriter,
bool  bWait 
)

Flush any data not yet written

Returns
S_OK = write complete. we can do read or write again. S_FALSE = write not complete. HRESULT_WIN32_C(ERROR_DEVICE_NOT_CONNECTED) = cant write right now.

Member Data Documentation

◆ m_Ctr

cSSLCtr GrayLib::cSSLMsgBuilder::m_Ctr

Counter added to the hash.

◆ m_nIntIndex

size_t GrayLib::cSSLMsgBuilder::m_nIntIndex

Amount of data read/written so far in m_pHdr. ( if !m_bCompleteMsg includes sizeof(cSSLMsgHeader) else just m_pCont data)


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