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

#include <cHashWrap.h>

Public Member Functions

 cHashWrap () noexcept
 
 cHashWrap (const cHashTypeDef *pHashTypeDef)
 
 ~cHashWrap ()
 
void SetZeroHash ()
 
HRESULT SetHashType (const cHashTypeDef *pHashTypeDef)
 
HRESULT ResetHash ()
 
HRESULT ProcessHashBuffer (const BYTE *pBuffer)
 
HRESULT AddToHash (const BYTE *pInput, size_t nInputSize)
 
HRESULT FinalizeHash (BYTE *pOutput)
 
HRESULT InitHmac (const BYTE *pKey, size_t nKeySize)
 Generic HMAC. More...
 
HRESULT FinalizeHmac (BYTE *pOutput)
 
HRESULT ResetHmac ()
 
void ApplyMask (BYTE *dst, size_t nSizeDst, BYTE *src, size_t nSizeSrc)
 

Public Attributes

const cHashTypeDefm_pHashTypeDef
 SSL_Hash_TYPE. More...
 
cNewPtr< cHashBasem_pHashBase
 Digest-specific info. More...
 

Static Public Attributes

static const size_t k_HashSizeMax = 64
 max size bytes. More...
 

Detailed Description

Wrap functionality for any given SSL_Hash_TYPE via cHashBase

Constructor & Destructor Documentation

◆ cHashWrap() [1/2]

GrayLib::cHashWrap::cHashWrap ( )
inlinenoexcept

◆ cHashWrap() [2/2]

GrayLib::cHashWrap::cHashWrap ( const cHashTypeDef pHashTypeDef)
inline

◆ ~cHashWrap()

GrayLib::cHashWrap::~cHashWrap ( )
inline

Member Function Documentation

◆ AddToHash()

HRESULT GrayLib::cHashWrap::AddToHash ( const BYTE *  pInput,
size_t  nInputSize 
)

Generic message digest process buffer

  • pInput = buffer holding the data
  • nInputSize = length of the input data
    Returns
    0 on success, E_POINTER if parameter verification fails.

◆ ApplyMask()

void GrayLib::cHashWrap::ApplyMask ( BYTE *  dst,
size_t  nSizeDst,
BYTE *  src,
size_t  nSizeSrc 
)

Generate and apply the MGF1 operation (from PKCS#1 v2.1) to a buffer.

  • dst = buffer to mask
  • nSizeDst = length of destination buffer
  • src = source of the mask generation
  • nSizeSrc = length of the source buffer

◆ FinalizeHash()

HRESULT GrayLib::cHashWrap::FinalizeHash ( BYTE *  pOutput)

Generic message digest final digest

  • pOutput = Generic message digest checksum result ASSUME pOutput is big enough.
    Returns
    0 on success, E_POINTER if parameter verification fails.

◆ FinalizeHmac()

HRESULT GrayLib::cHashWrap::FinalizeHmac ( BYTE *  pOutput)

◆ InitHmac()

HRESULT GrayLib::cHashWrap::InitHmac ( const BYTE *  pKey,
size_t  nKeySize 
)

Generic HMAC.

◆ ProcessHashBuffer()

HRESULT GrayLib::cHashWrap::ProcessHashBuffer ( const BYTE *  pBuffer)

Internal use for time wasting to avoid timing attacks. sizeof(this->m_buffer)

◆ ResetHash()

HRESULT GrayLib::cHashWrap::ResetHash ( )

Set-up the given context for a new message digest

Returns
0 on success, E_POINTER if parameter verification fails.

◆ ResetHmac()

HRESULT GrayLib::cHashWrap::ResetHmac ( )

◆ SetHashType()

HRESULT GrayLib::cHashWrap::SetHashType ( const cHashTypeDef pHashTypeDef)

Initializes and fills the message digest context structure with the appropriate values.

  • pHashType = message digest to use.
    Returns
    0 on success, E_POINTER on parameter failure, E_OUTOFMEMORY if allocation of the digest-specific context failed.

◆ SetZeroHash()

void GrayLib::cHashWrap::SetZeroHash ( )
inline

Member Data Documentation

◆ k_HashSizeMax

const size_t GrayLib::cHashWrap::k_HashSizeMax = 64
static

max size bytes.

◆ m_pHashBase

cNewPtr<cHashBase> GrayLib::cHashWrap::m_pHashBase

Digest-specific info.

◆ m_pHashTypeDef

const cHashTypeDef* GrayLib::cHashWrap::m_pHashTypeDef

SSL_Hash_TYPE.


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