Data Structures | Defines | Functions

# sha384.c File Reference

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

## Data Structures

struct | _SHA384Info

## Defines

#define | SHA384Blocksize 128
#define | SHA384Digestsize 48
#define | Sigma0(x) (RotateRight(x,1) ^ RotateRight(x,8) ^ Trunc64((x) >> 7))
#define | Sigma1(x) (RotateRight(x,19) ^ RotateRight(x,61) ^ Trunc64((x) >> 6))
#define | Suma0(x) (RotateRight(x,28) ^ RotateRight(x,34) ^ RotateRight(x,39))
#define | Suma1(x) (RotateRight(x,14) ^ RotateRight(x,18) ^ RotateRight(x,41))

## Functions

static void | TransformSHA384 (SHA384Info *)
WizardExport SHA384Info * | AcquireSHA384Info (void)
WizardExport SHA384Info * | DestroySHA384Info (SHA384Info *sha_info)
WizardExport void | FinalizeSHA384 (SHA384Info *sha_info)
WizardExport unsigned int | GetSHA384Blocksize (const SHA384Info *sha384_info)
WizardExport const StringInfo * | GetSHA384Digest (const SHA384Info *sha384_info)
WizardExport unsigned int | GetSHA384Digestsize (const SHA384Info *sha384_info)
WizardExport void | InitializeSHA384 (SHA384Info *sha_info)
static WizardSizeType | Ch (WizardSizeType x, WizardSizeType y, WizardSizeType z)
static WizardSizeType | Maj (WizardSizeType x, WizardSizeType y, WizardSizeType z)
static WizardSizeType | Trunc64 (WizardSizeType x)
static WizardSizeType | RotateRight (WizardSizeType x, WizardSizeType n)
WizardExport void | UpdateSHA384 (SHA384Info *sha_info, const StringInfo *message)

## Define Documentation

#define SHA384Blocksize 128

Referenced by AcquireSHA384Info().

#define SHA384Digestsize 48

Referenced by AcquireSHA384Info(), and FinalizeSHA384().

#define Sigma0 | ( |  | x | ) | (RotateRight(x,1) ^ RotateRight(x,8) ^ Trunc64((x) >> 7))

#define Sigma1 | ( |  | x | ) | (RotateRight(x,19) ^ RotateRight(x,61) ^ Trunc64((x) >> 6))

#define Suma0 | ( |  | x | ) | (RotateRight(x,28) ^ RotateRight(x,34) ^ RotateRight(x,39))

#define Suma1 | ( |  | x | ) | (RotateRight(x,14) ^ RotateRight(x,18) ^ RotateRight(x,41))

## Function Documentation

WizardExport SHA384Info* AcquireSHA384Info | ( | void |  | ) |

References _SHA384Info::accumulator, AcquireQuantumMemory(), AcquireStringInfo(), AcquireWizardMemory(), _SHA384Info::blocksize, _SHA384Info::digest, _SHA384Info::digestsize, HashError, InitializeSHA384(), _SHA384Info::lsb_first, MemoryError, _SHA384Info::message, ResetWizardMemory(), SHA384Blocksize, SHA384Digestsize, _SHA384Info::signature, ThrowWizardFatalError, _SHA384Info::timestamp, WizardFalse, and WizardTrue.

Referenced by AcquireHashInfo().

static WizardSizeType Ch | ( | WizardSizeType | x,
|  | WizardSizeType | y,
|  | WizardSizeType | z |
| ) |  |  | `[inline, static]`

Referenced by TransformSHA384().

WizardExport SHA384Info* DestroySHA384Info | ( | SHA384Info * | sha_info | ) |

References _SHA384Info::accumulator, DestroyStringInfo(), _SHA384Info::digest, GetWizardModule, LogWizardEvent(), _SHA384Info::message, RelinquishWizardMemory(), _SHA384Info::signature, TraceEvent, and WizardSignature.

Referenced by DestroyHashInfo().

WizardExport void FinalizeSHA384 | ( | SHA384Info * | sha_info | ) |

References _SHA384Info::accumulator, _SHA384Info::digest, GetStringInfoDatum(), GetStringInfoLength(), GetWizardModule, _SHA384Info::high_order, LogWizardEvent(), _SHA384Info::low_order, _SHA384Info::message, ResetWizardMemory(), SHA384Digestsize, _SHA384Info::signature, TraceEvent, TransformSHA384(), and WizardSignature.

Referenced by FinalizeHash().

WizardExport unsigned int GetSHA384Blocksize | ( | const SHA384Info * | sha384_info | ) |

References _SHA384Info::blocksize, CipherDomain, GetWizardModule, LogWizardEvent(), _SHA384Info::signature, TraceEvent, WizardAssert, and WizardSignature.

Referenced by GetHashBlocksize().

WizardExport const StringInfo* GetSHA384Digest | ( | const SHA384Info * | sha384_info | ) |

References _SHA384Info::digest, GetWizardModule, HashDomain, LogWizardEvent(), _SHA384Info::signature, TraceEvent, WizardAssert, and WizardSignature.

Referenced by FinalizeHash().

WizardExport unsigned int GetSHA384Digestsize | ( | const SHA384Info * | sha384_info | ) |

References CipherDomain, _SHA384Info::digestsize, GetWizardModule, LogWizardEvent(), _SHA384Info::signature, TraceEvent, WizardAssert, and WizardSignature.

Referenced by AcquireHashInfo(), and GetHashDigestsize().

WizardExport void InitializeSHA384 | ( | SHA384Info * | sha_info | ) |

References _SHA384Info::accumulator, GetWizardModule, _SHA384Info::high_order, LogWizardEvent(), _SHA384Info::low_order, _SHA384Info::offset, _SHA384Info::signature, TraceEvent, WizardSignature, and WizardULLConstant.

Referenced by AcquireSHA384Info(), and InitializeHash().

static WizardSizeType Maj | ( | WizardSizeType | x,
|  | WizardSizeType | y,
|  | WizardSizeType | z |
| ) |  |  | `[inline, static]`

Referenced by TransformSHA384().

static WizardSizeType RotateRight | ( | WizardSizeType | x,
|  | WizardSizeType | n |
| ) |  |  | `[static]`

References Trunc64().

static void TransformSHA384 | ( | SHA384Info * | sha_info | ) | `[static]`

References _SHA384Info::accumulator, Ch(), GetStringInfoDatum(), _SHA384Info::lsb_first, Maj(), _SHA384Info::message, ResetWizardMemory(), Sigma0, Sigma1, Suma0, Suma1, Trunc64(), WizardFalse, and WizardULLConstant.

Referenced by FinalizeSHA384(), and UpdateSHA384().

static WizardSizeType Trunc64 | ( | WizardSizeType | x | ) | `[inline, static]`

References WizardULLConstant.

Referenced by RotateRight(), TransformSHA384(), and UpdateSHA384().

WizardExport void UpdateSHA384 | ( | SHA384Info * | sha_info,
|  | const StringInfo * | message |
| ) |  |  |

References CopyWizardMemory(), GetStringInfoDatum(), GetStringInfoLength(), _SHA384Info::high_order, _SHA384Info::low_order, _SHA384Info::message, _SHA384Info::offset, SetStringInfoDatum(), _SHA384Info::signature, TransformSHA384(), Trunc64(), and WizardSignature.

Referenced by UpdateHash().