50#define SHA2384Blocksize 128
51#define SHA2384Digestsize 48
119 (void) memset(sha_info,0,
sizeof(*sha_info));
131 sha_info->
timestamp=time((time_t *) NULL);
229 datum[count++]=(
unsigned char) 0x80;
241 datum[112]=(
unsigned char) (high_order >> 56);
242 datum[113]=(
unsigned char) (high_order >> 48);
243 datum[114]=(
unsigned char) (high_order >> 40);
244 datum[115]=(
unsigned char) (high_order >> 32);
245 datum[116]=(
unsigned char) (high_order >> 24);
246 datum[117]=(
unsigned char) (high_order >> 16);
247 datum[118]=(
unsigned char) (high_order >> 8);
248 datum[119]=(
unsigned char) high_order;
249 datum[120]=(
unsigned char) (low_order >> 56);
250 datum[121]=(
unsigned char) (low_order >> 48);
251 datum[122]=(
unsigned char) (low_order >> 40);
252 datum[123]=(
unsigned char) (low_order >> 32);
253 datum[124]=(
unsigned char) (low_order >> 24);
254 datum[125]=(
unsigned char) (low_order >> 16);
255 datum[126]=(
unsigned char) (low_order >> 8);
256 datum[127]=(
unsigned char) low_order;
262 *q++=(
unsigned char) ((*p >> 56) & 0xff);
263 *q++=(
unsigned char) ((*p >> 48) & 0xff);
264 *q++=(
unsigned char) ((*p >> 40) & 0xff);
265 *q++=(
unsigned char) ((*p >> 32) & 0xff);
266 *q++=(
unsigned char) ((*p >> 24) & 0xff);
267 *q++=(
unsigned char) ((*p >> 16) & 0xff);
268 *q++=(
unsigned char) ((*p >> 8) & 0xff);
269 *q++=(
unsigned char) (*p & 0xff);
338 return(sha2384_info->
digest);
438 return((x & y) ^ (~x & z));
444 return((x & y) ^ (x & z) ^ (y & z));
455 return(
Trunc64((x >> n) | (x << (64-n))));
460#define Sigma0(x) (RotateRight(x,1) ^ RotateRight(x,8) ^ Trunc64((x) >> 7))
461#define Sigma1(x) (RotateRight(x,19) ^ RotateRight(x,61) ^ Trunc64((x) >> 6))
462#define Suma0(x) (RotateRight(x,28) ^ RotateRight(x,34) ^ RotateRight(x,39))
463#define Suma1(x) (RotateRight(x,14) ^ RotateRight(x,18) ^ RotateRight(x,41))
575 for (i=0; i < 16; i++)
582 for (i=0; i < 16; i++)
607 for (i=16; i < 80; i++)
609 for (j=0; j < 80; j++)
647 (void) memset(W,0,
sizeof(W));
697 if (length < sha_info->low_order)
702 if (sha_info->
offset != 0)
#define WizardAssert(domain, predicate)
#define ThrowWizardFatalError(domain, error)
WizardBooleanType LogWizardEvent(const LogEventType type, const char *module, const char *function, const size_t line, const char *format,...)
#define GetWizardModule()
static unsigned int H(const unsigned int x, const unsigned int y, const unsigned int z)
static unsigned int F(const unsigned int x, const unsigned int y, const unsigned int z)
static unsigned int G(const unsigned int x, const unsigned int y, const unsigned int z)
WizardExport void * AcquireWizardMemory(const size_t size)
WizardExport void * CopyWizardMemory(void *destination, const void *source, const size_t size)
WizardExport void * AcquireQuantumMemory(const size_t count, const size_t quantum)
WizardExport void * RelinquishWizardMemory(void *memory)
WizardExport SHA2384Info * DestroySHA2384Info(SHA2384Info *sha_info)
WizardExport WizardBooleanType UpdateSHA2384(SHA2384Info *sha_info, const StringInfo *message)
WizardExport SHA2384Info * AcquireSHA2384Info(void)
#define SHA2384Digestsize
WizardExport unsigned int GetSHA2384Digestsize(const SHA2384Info *sha2384_info)
WizardExport unsigned int GetSHA2384Blocksize(const SHA2384Info *sha2384_info)
WizardExport WizardBooleanType FinalizeSHA2384(SHA2384Info *sha_info)
static void TransformSHA2384(SHA2384Info *)
WizardExport const StringInfo * GetSHA2384Digest(const SHA2384Info *sha2384_info)
WizardExport WizardBooleanType InitializeSHA2384(SHA2384Info *sha_info)
static WizardSizeType Trunc64(const WizardSizeType x)
#define RotateRight(x, n)
WizardExport size_t GetStringInfoLength(const StringInfo *string_info)
WizardExport StringInfo * AcquireStringInfo(const size_t length)
WizardExport void SetStringInfoDatum(StringInfo *string_info, const unsigned char *source)
WizardExport unsigned char * GetStringInfoDatum(const StringInfo *string_info)
WizardExport StringInfo * DestroyStringInfo(StringInfo *string_info)
WizardSizeType high_order
WizardBooleanType lsb_first
WizardSizeType * accumulator
#define WizardULLConstant(c)