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

#include <cHashBase.h>

Inheritance diagram for GrayLib::cHashBase:
Gray::CObject GrayLib::cCRC32Builder GrayLib::cHashMD5Builder GrayLib::cHashSHA1Builder GrayLib::cHashSHA512Builder GrayLib::cHashSHA384Builder

Public Member Functions

virtual ~cHashBase ()
 
virtual void ResetHash ()=0
 
virtual void ProcessHashBuffer (const BYTE *pBuffer)
 
virtual void AddToHash (const void *pInput, size_t nInputSize)=0
 Digest update function. More...
 
virtual size_t FinalizeHash (OUT BYTE *pOutput)=0
 Digest finalization function. More...
 
size_t ComputeHash (BYTE *pOutput, const void *pInput, size_t nInputSize)
 
virtual void InitHmac (const BYTE *pKey, size_t nKeySize)
 
virtual size_t FinalizeHmac (OUT BYTE *pOutput)
 HMAC finalization function. More...
 
virtual void ResetHmac ()
 
size_t ComputeHmac (BYTE *pOutput, const BYTE *pKey, size_t nKeySize, const void *pInput, size_t nInputSize)
 
void AddToHashFromBlock (const cHeapBlock &m)
 Helpers. More...
 
StrLen_t AddToHashFromStr (const char *pszStr)
 
HRESULT AddToHashFromStream (cStreamInput &file, IStreamProgressCallback *pProgress=nullptr)
 
HRESULT AddToHashFromFile (const FILECHAR_t *pszFileName, IStreamProgressCallback *pProgress=nullptr)
 
HRESULT ComputeHashFromStream (OUT BYTE *pOutput, cStreamInput &fin, IStreamProgressCallback *pProgress=nullptr)
 
HRESULT ComputeHashFromFile (OUT BYTE *pOutput, const FILECHAR_t *pszFileName, IStreamProgressCallback *pProgress=nullptr)
 
- Public Member Functions inherited from Gray::CObject
virtual ~CObject ()
 
virtual bool isValidCheck () const noexcept
 < memory allocation and structure definitions are valid. More...
 
virtual void AssertValid () const
 < memory allocation and structure definitions are valid. More...
 
virtual void Serialize (cArchive &a)
 

Static Public Attributes

static const BYTE k_Padding [128]
 0x80 followed by zeros. More...
 
static const size_t k_HashSizeMax = 64
 Largest hash k_HashSize that we support. in bytes. More...
 

Detailed Description

Base hash builder class for: MD5,SHA1,SHA256,SHA512 Defined by cHashTypeDef

Constructor & Destructor Documentation

◆ ~cHashBase()

virtual GrayLib::cHashBase::~cHashBase ( )
inlinevirtual

allow delete base to work.

Member Function Documentation

◆ AddToHash()

virtual void GrayLib::cHashBase::AddToHash ( const void *  pInput,
size_t  nInputSize 
)
pure virtual

◆ AddToHashFromBlock()

void GrayLib::cHashBase::AddToHashFromBlock ( const cHeapBlock m)
inline

Helpers.

◆ AddToHashFromFile()

HRESULT GrayLib::cHashBase::AddToHashFromFile ( const FILECHAR_t pszFileName,
IStreamProgressCallback pProgress = nullptr 
)

◆ AddToHashFromStr()

StrLen_t GrayLib::cHashBase::AddToHashFromStr ( const char *  pszStr)
  • pszStr = nullptr should be OK.

◆ AddToHashFromStream()

HRESULT GrayLib::cHashBase::AddToHashFromStream ( cStreamInput file,
IStreamProgressCallback pProgress = nullptr 
)

◆ ComputeHash()

size_t GrayLib::cHashBase::ComputeHash ( BYTE *  pOutput,
const void *  pInput,
size_t  nInputSize 
)
inline

Calculate and Finalize in a single step.

◆ ComputeHashFromFile()

HRESULT GrayLib::cHashBase::ComputeHashFromFile ( OUT BYTE *  pOutput,
const FILECHAR_t pszFileName,
IStreamProgressCallback pProgress = nullptr 
)

◆ ComputeHashFromStream()

HRESULT GrayLib::cHashBase::ComputeHashFromStream ( OUT BYTE *  pOutput,
cStreamInput fin,
IStreamProgressCallback pProgress = nullptr 
)

compute a Hash for file contents

◆ ComputeHmac()

size_t GrayLib::cHashBase::ComputeHmac ( BYTE *  pOutput,
const BYTE *  pKey,
size_t  nKeySize,
const void *  pInput,
size_t  nInputSize 
)
inline

computer HMAC as a single action.

◆ FinalizeHash()

virtual size_t GrayLib::cHashBase::FinalizeHash ( OUT BYTE *  pOutput)
pure virtual

Digest finalization function.

Implemented in GrayLib::cCRC32Builder.

◆ FinalizeHmac()

virtual size_t GrayLib::cHashBase::FinalizeHmac ( OUT BYTE *  pOutput)
inlinevirtual

HMAC finalization function.

◆ InitHmac()

virtual void GrayLib::cHashBase::InitHmac ( const BYTE *  pKey,
size_t  nKeySize 
)
inlinevirtual

HMAC Initialization function

Reimplemented in GrayLib::cHashSHA512Builder, GrayLib::cHashSHA1Builder, and GrayLib::cHashMD5Builder.

◆ ProcessHashBuffer()

virtual void GrayLib::cHashBase::ProcessHashBuffer ( const BYTE *  pBuffer)
inlinevirtual

Internal buffer process. TODO GET RID OF THIS ???

◆ ResetHash()

virtual void GrayLib::cHashBase::ResetHash ( )
pure virtual

◆ ResetHmac()

virtual void GrayLib::cHashBase::ResetHmac ( )
inlinevirtual

HMAC context reset function. Will call ResetHash().

Reimplemented in GrayLib::cHashSHA512Builder, GrayLib::cHashSHA1Builder, and GrayLib::cHashMD5Builder.

Member Data Documentation

◆ k_HashSizeMax

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

Largest hash k_HashSize that we support. in bytes.

◆ k_Padding

const BYTE GrayLib::cHashBase::k_Padding
static
Initial value:
=
{
0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
}

0x80 followed by zeros.


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