SHA512_DIGEST_LENGTH
(size_t)(SHA512_DIGEST_LENGTH));
SHA512_Final(uint8_t digest[SHA512_DIGEST_LENGTH], SHA512_CTX *context)
(size_t)(SHA512_DIGEST_LENGTH));
if ((res = vmalloc(SHA512_DIGEST_LENGTH)) == 0)
if (SHA512_DIGEST_LENGTH != res->l) {
if ((res = vmalloc(SHA512_DIGEST_LENGTH)) == 0)
return SHA512_DIGEST_LENGTH << 3;
SHA512_DIGEST_LENGTH,
bcopy(sha512_initial_hash_value, context->state, SHA512_DIGEST_LENGTH);
bcopy(context->state, d, SHA512_DIGEST_LENGTH);
sha2_byte digest[SHA512_DIGEST_LENGTH], *d = digest;
for (i = 0; i < SHA512_DIGEST_LENGTH; i++) {
bzero(digest, SHA512_DIGEST_LENGTH);
bcopy(sha384_initial_hash_value, context->state, SHA512_DIGEST_LENGTH);
void SHA512_Final __P((u_int8_t[SHA512_DIGEST_LENGTH], SHA512_CTX*));
#define SHA512_DIGEST_STRING_LENGTH (SHA512_DIGEST_LENGTH * 2 + 1)
"sha512", sizeof(SHA512_CTX), SHA512_DIGEST_LENGTH,
uint8_t digest[SHA512_DIGEST_LENGTH];
uint8_t digest[SHA512_DIGEST_LENGTH];
#define RNGSTATE_SIZE (SHA512_DIGEST_LENGTH / 2)
#define RNGDATA_SIZE (SHA512_DIGEST_LENGTH / 2)
FPOPS_ADD("SHA512", SHA512_DIGEST_LENGTH, sizeof(SHA512_CTX),
int SHA512_Final(uint8_t[SHA512_DIGEST_LENGTH], SHA512_CTX*);
#define SHA512_DIGEST_STRING_LENGTH (SHA512_DIGEST_LENGTH * 2 + 1)
unsigned char digest[8 + SHA512_DIGEST_LENGTH];
digest2string(digest + j, output, SHA512_DIGEST_LENGTH);