Data Structures | Functions

# hmac.c File Reference

`#include "wizard/studio.h"`
`#include "wizard/exception.h"`
`#include "wizard/exception-private.h"`
`#include "wizard/hash.h"`
`#include "wizard/hmac.h"`
`#include "wizard/memory_.h"`

## Data Structures
struct | _HMACInfo
## Functions
WizardExport HMACInfo * | AcquireHMACInfo (const HashType hash)
WizardExport void | ConstructHMAC (HMACInfo *hmac_info, const StringInfo *key, const StringInfo *message)
WizardExport HMACInfo * | DestroyHMACInfo (HMACInfo *hmac_info)
WizardExport void | FinalizeHMAC (HMACInfo *hmac_info)
WizardExport const StringInfo * | GetHMACDigest (const HMACInfo *hmac_info)
WizardExport size_t | GetHMACDigestsize (const HMACInfo *hmac_info)
WizardExport void | InitializeHMAC (HMACInfo *hmac_info, const StringInfo *key)
WizardExport void | ResetHMAC (HMACInfo *hmac_info)
WizardExport void | UpdateHMAC (HMACInfo *hmac_info, const StringInfo *message)

## Function Documentation

WizardExport HMACInfo* AcquireHMACInfo | ( | const HashType | hash | ) |

References AcquireHashInfo(), AcquireStringInfo(), AcquireWizardMemory(), _HMACInfo::digest, _HMACInfo::final_nonce, GetHashBlocksize(), GetHashDigestsize(), _HMACInfo::hash_info, _HMACInfo::initial_nonce, MACDomain, MemoryError, ResetWizardMemory(), _HMACInfo::signature, ThrowWizardFatalError, and _HMACInfo::timestamp.

Referenced by AcquireRandomInfo(), AcquireSecretInfo(), and GenerateSessionKey().

WizardExport void ConstructHMAC | ( | HMACInfo * | hmac_info,
|  | const StringInfo * | key,
|  | const StringInfo * | message |
| ) |  |  |

References FinalizeHMAC(), GetWizardModule, InitializeHMAC(), LogWizardEvent(), _HMACInfo::signature, TraceEvent, UpdateHMAC(), and WizardSignature.

Referenced by AuthenticateSecretKey(), GenerateSecretKey(), and GenerateSessionKey().

WizardExport HMACInfo* DestroyHMACInfo | ( | HMACInfo * | hmac_info | ) |

References DestroyHashInfo(), DestroyStringInfo(), _HMACInfo::digest, _HMACInfo::final_nonce, GetWizardModule, _HMACInfo::hash_info, _HMACInfo::initial_nonce, LogWizardEvent(), RelinquishWizardMemory(), _HMACInfo::signature, TraceEvent, and WizardSignature.

Referenced by DestroyRandomInfo(), DestroySecretInfo(), and GenerateSessionKey().

WizardExport void FinalizeHMAC | ( | HMACInfo * | hmac_info | ) |

References _HMACInfo::digest, _HMACInfo::final_nonce, FinalizeHash(), GetHashDigest(), GetWizardModule, _HMACInfo::hash_info, InitializeHash(), LogWizardEvent(), SetStringInfo(), _HMACInfo::signature, TraceEvent, UpdateHash(), and WizardSignature.

Referenced by ConstructHMAC(), and SetRandomKey().

WizardExport const StringInfo* GetHMACDigest | ( | const HMACInfo * | hmac_info | ) |

References _HMACInfo::digest, GetWizardModule, LogWizardEvent(), MACDomain, _HMACInfo::signature, TraceEvent, WizardAssert, and WizardSignature.

Referenced by AcquireRandomInfo(), AuthenticateSecretKey(), GenerateSecretKey(), GenerateSessionKey(), SaveEntropyToReservoir(), and SetRandomKey().

WizardExport size_t GetHMACDigestsize | ( | const HMACInfo * | hmac_info | ) |

References CipherDomain, GetHashDigestsize(), GetWizardModule, _HMACInfo::hash_info, LogWizardEvent(), _HMACInfo::signature, TraceEvent, WizardAssert, and WizardSignature.

Referenced by AcquireRandomInfo(), and SetRandomKey().

WizardExport void InitializeHMAC | ( | HMACInfo * | hmac_info,
|  | const StringInfo * | key |
| ) |  |  |

References _HMACInfo::final_nonce, FinalizeHash(), GetHashDigest(), GetStringInfoDatum(), GetStringInfoLength(), GetWizardModule, _HMACInfo::hash_info, _HMACInfo::initial_nonce, InitializeHash(), LogWizardEvent(), ResetHMAC(), ResetStringInfo(), SetStringInfo(), _HMACInfo::signature, TraceEvent, UpdateHash(), and WizardSignature.

Referenced by AcquireRandomInfo(), and ConstructHMAC().

WizardExport void ResetHMAC | ( | HMACInfo * | hmac_info | ) |

References GetWizardModule, _HMACInfo::hash_info, _HMACInfo::initial_nonce, InitializeHash(), LogWizardEvent(), _HMACInfo::signature, TraceEvent, UpdateHash(), and WizardSignature.

Referenced by InitializeHMAC(), and SetRandomKey().

WizardExport void UpdateHMAC | ( | HMACInfo * | hmac_info,
|  | const StringInfo * | message |
| ) |  |  |

References GetWizardModule, _HMACInfo::hash_info, LogWizardEvent(), _HMACInfo::signature, TraceEvent, UpdateHash(), and WizardSignature.

Referenced by ConstructHMAC(), and SetRandomKey().