IteratedHash< T_HashWordType, T_Endianness, T_BlockSize, T_Base > Class Template Reference

Iterated hash base class. More...

Inheritance diagram for IteratedHash< T_HashWordType, T_Endianness, T_BlockSize, T_Base >:

## Public Types

typedef T_Endianness | ByteOrderClass
typedef T_HashWordType | HashWordType
Public Types inherited from IteratedHashBase< T_HashWordType, HashTransformation >
typedef T_HashWordType | HashWordType

## Public Member Functions

unsigned int | BlockSize () const
| Provides the block size of the hash. More...
ByteOrder | GetByteOrder () const
| Provides the byte order of the hash. More...
void | CorrectEndianess (HashWordType *out, const HashWordType *in, size_t byteCount)
| Adjusts the byte ordering of the hash. More...
Public Member Functions inherited from IteratedHashBase< T_HashWordType, HashTransformation >
| IteratedHashBase ()
| Construct an IteratedHashBase.
unsigned int | OptimalBlockSize () const
| Provides the input block size most efficient for this cipher. More...
unsigned int | OptimalDataAlignment () const
| Provides input and output data alignment for optimal performance. More...
void | Update (const byte *input, size_t length)
| Updates a hash with additional input. More...
byte * | CreateUpdateSpace (size_t &size)
| Requests space which can be written into by the caller. More...
void | Restart ()
| Restart the hash. More...
void | TruncatedFinal (byte *digest, size_t digestSize)
| Computes the hash of the current message. More...
virtual std::string | AlgorithmProvider () const
| Retrieve the provider of this algorithm. More...
Public Member Functions inherited from HashTransformation
HashTransformation & | Ref ()
| Provides a reference to this object. More...
virtual void | Final (byte *digest)
| Computes the hash of the current message. More...
virtual unsigned int | DigestSize () const =0
| Provides the digest size of the hash. More...
unsigned int | TagSize () const
| Provides the tag size of the hash. More...
virtual void | CalculateDigest (byte *digest, const byte *input, size_t length)
| Updates the hash with additional input and computes the hash of the current message. More...
virtual bool | Verify (const byte *digest)
| Verifies the hash of the current message. More...
virtual bool | VerifyDigest (const byte *digest, const byte *input, size_t length)
| Updates the hash with additional input and verifies the hash of the current message. More...
virtual void | CalculateTruncatedDigest (byte *digest, size_t digestSize, const byte *input, size_t length)
| Updates the hash with additional input and computes the hash of the current message. More...
virtual bool | TruncatedVerify (const byte *digest, size_t digestLength)
| Verifies the hash of the current message. More...
virtual bool | VerifyTruncatedDigest (const byte *digest, size_t digestLength, const byte *input, size_t length)
| Updates the hash with additional input and verifies the hash of the current message. More...
Public Member Functions inherited from Algorithm
| Algorithm (bool checkSelfTestStatus=true)
| Interface for all crypto algorithms. More...
virtual std::string | AlgorithmName () const
| Provides the name of this algorithm. More...
Public Member Functions inherited from Clonable
virtual Clonable * | Clone () const
| Copies this object. More...

## Static Public Attributes

static const int | BLOCKSIZE = T_BlockSize

## Detailed Description

### template<class T_HashWordType, class T_Endianness, unsigned int T_BlockSize, class T_Base = HashTransformation>
class IteratedHash< T_HashWordType, T_Endianness, T_BlockSize, T_Base >

Iterated hash base class.

Template Parameters

  T_HashWordType | Hash word type
  T_Endianness | Endianness type of hash
  T_BlockSize | Block size of the hash
  T_Base | HashTransformation derived class

IteratedHash provides a default implementation for block-based iterated hashes

See also
  HashTransformation, MessageAuthenticationCode

Definition at line 126 of file iterhash.h.

## Member Function Documentation

## BlockSize()

template<class T_HashWordType , class T_Endianness , unsigned int T_BlockSize, class T_Base = HashTransformation>

unsigned int IteratedHash< T_HashWordType, T_Endianness, T_BlockSize, T_Base >::BlockSize | ( |  | ) | const

inline virtual

Provides the block size of the hash.

Returns
  the block size of the hash, in bytes

BlockSize() returns `T_BlockSize`.

Reimplemented from HashTransformation.

Definition at line 141 of file iterhash.h.

## GetByteOrder()

template<class T_HashWordType , class T_Endianness , unsigned int T_BlockSize, class T_Base = HashTransformation>

ByteOrder IteratedHash< T_HashWordType, T_Endianness, T_BlockSize, T_Base >::GetByteOrder | ( |  | ) | const

inline virtual

Provides the byte order of the hash.

Returns
  the byte order of the hash as an enumeration

GetByteOrder() returns `T_Endianness::ToEnum()`.

See also
  ByteOrder()

Implements IteratedHashBase< T_HashWordType, HashTransformation >.

Definition at line 147 of file iterhash.h.

## CorrectEndianess()

template<class T_HashWordType , class T_Endianness , unsigned int T_BlockSize, class T_Base = HashTransformation>

void IteratedHash< T_HashWordType, T_Endianness, T_BlockSize, T_Base >::CorrectEndianess | ( | HashWordType * | out,
|  | const HashWordType * | in,
|  | size_t | byteCount
| ) |  |

inline

Adjusts the byte ordering of the hash.

Parameters

  out | the output buffer
  in | the input buffer
  byteCount | the size of the buffers, in bytes

CorrectEndianess() calls ConditionalByteReverse() using `T_Endianness`.

Definition at line 154 of file iterhash.h.

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

- iterhash.h