void hb_hmac_sha384_final(hmac_sha384_ctx *ctx, unsigned char *mac, unsigned int mac_size) { unsigned char digest_inside[SHA384_DIGEST_SIZE]; unsigned char mac_temp[SHA384_DIGEST_SIZE]; hb_sha384_final(&ctx->ctx_inside, digest_inside); hb_sha384_update(&ctx->ctx_outside, digest_inside, SHA384_DIGEST_SIZE); hb_sha384_final(&ctx->ctx_outside, mac_temp); memcpy(mac, mac_temp, mac_size); }
void hb_sha384( const void * message, unsigned int len, unsigned char * digest ) { sha384_ctx ctx; hb_sha384_init( &ctx ); hb_sha384_update( &ctx, message, len ); hb_sha384_final( &ctx, digest ); }