NullHash Class Reference

Null hash. More...

`#include <trunhash.h>`

Inheritance diagram for NullHash:

## Public Member Functions

void | Update (const byte *input, size_t length)
| Updates a hash with additional input.
unsigned int | DigestSize () const
| Provides the digest size of the hash.
void | TruncatedFinal (byte *digest, size_t digestSize)
| Computes the hash of the current message.
bool | TruncatedVerify (const byte *digest, size_t digestLength)
| Verifies the hash of the current message.
Public Member Functions inherited from HashTransformation
HashTransformation & | Ref ()
| Provides a reference to this object.
virtual byte * | CreateUpdateSpace (size_t &size)
| Request space which can be written into by the caller.
virtual void | Final (byte *digest)
| Computes the hash of the current message.
virtual void | Restart ()
| Restart the hash.
unsigned int | TagSize () const
| Provides the tag size of the hash.
virtual unsigned int | BlockSize () const
| Provides the block size of the compression function.
virtual unsigned int | OptimalBlockSize () const
| Provides the input block size most efficient for this hash.
virtual unsigned int | OptimalDataAlignment () const
| Provides input and output data alignment for optimal performance.
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.
virtual bool | Verify (const byte *digest)
| Verifies the hash of the current message.
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.
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.
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.
Public Member Functions inherited from Algorithm
| Algorithm (bool checkSelfTestStatus=true)
| Interface for all crypto algorithms.
virtual std::string | AlgorithmName () const
| Provides the name of this algorithm.
virtual std::string | AlgorithmProvider () const
| Retrieve the provider of this algorithm.
Public Member Functions inherited from Clonable
virtual Clonable * | Clone () const
| Copies this object.

## Detailed Description

Null hash.

A null hash that conforms to HashTransformation interface

Definition at line 15 of file trunhash.h.

## Member Function Documentation

## Update()

void NullHash::Update | ( | const byte * | input,
|  | size_t | length
| ) |  |

inline virtual

Updates a hash with additional input.

Parameters

  input | the additional input as a buffer
  length | the size of the buffer, in bytes

Implements HashTransformation.

Definition at line 18 of file trunhash.h.

## DigestSize()

unsigned int NullHash::DigestSize | ( |  | ) | const

inline virtual

Provides the digest size of the hash.

Returns
  the digest size of the hash.

Implements HashTransformation.

Definition at line 20 of file trunhash.h.

## TruncatedFinal()

void NullHash::TruncatedFinal | ( | byte * | digest,
|  | size_t | digestSize
| ) |  |

inline virtual

Computes the hash of the current message.

Parameters

  digest | a pointer to the buffer to receive the hash
  digestSize | the size of the truncated digest, in bytes

TruncatedFinal() calls Final() and then copies digestSize bytes to digest. The hash is restarted the hash for the next message.

Precondition
  `COUNTOF(digest) <= DigestSize()` or `COUNTOF(digest) <= HASH::DIGESTSIZE` ensures the output byte buffer is a valid size.

Implements HashTransformation.

Definition at line 22 of file trunhash.h.

## TruncatedVerify()

bool NullHash::TruncatedVerify | ( | const byte * | digest,
|  | size_t | digestLength
| ) |  |

inline virtual

Verifies the hash of the current message.

Parameters

  digest | a pointer to the buffer of an existing hash
  digestLength | the size of the truncated hash, in bytes

Returns
  `true` if the existing hash matches the computed hash, `false` otherwise

Exceptions

  InvalidArgument() | if digestLength exceeds DigestSize()

TruncatedVerify() is a truncated version of Verify(). It can operate on a buffer smaller than DigestSize(). However, digestLength cannot exceed DigestSize().

Verify() performs a bitwise compare on the buffers using VerifyBufsEqual(), which is a constant time comparison function. digestLength cannot exceed DigestSize().

TruncatedVerify() restarts the hash for the next message.

Precondition
  `digestLength <= DigestSize()` or `digestLength <= HASH::DIGESTSIZE` ensures the input byte buffer is a valid size.

Reimplemented from HashTransformation.

Definition at line 24 of file trunhash.h.

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

- trunhash.h