SHA384_DIGEST_SIZE
case SHA384_DIGEST_SIZE:
case SHA384_DIGEST_SIZE:
case SHA384_DIGEST_SIZE:
case SHA384_DIGEST_SIZE:
case SHA384_DIGEST_SIZE:
.digestsize = SHA384_DIGEST_SIZE,
.digestsize = SHA384_DIGEST_SIZE,
const u8 sha384_zero_message_hash[SHA384_DIGEST_SIZE] = {
return SHA384_DIGEST_SIZE + 2;
.digestsize = SHA384_DIGEST_SIZE,
if (digestsize == SHA384_DIGEST_SIZE)
case SHA384_DIGEST_SIZE:
rctx->digsize = SHA384_DIGEST_SIZE;
.digestsize = SHA384_DIGEST_SIZE,
.maxauthsize = SHA384_DIGEST_SIZE,
.halg.digestsize = SHA384_DIGEST_SIZE,
.halg.digestsize = SHA384_DIGEST_SIZE,
authctx->digestlen = SHA384_DIGEST_SIZE;
case SHA384_DIGEST_SIZE:
memcpy(req->result, ctx->digest, SHA384_DIGEST_SIZE);
.maxauthsize = SHA384_DIGEST_SIZE,
.maxauthsize = SHA384_DIGEST_SIZE,
.halg.digestsize = SHA384_DIGEST_SIZE,
.halg.digestsize = SHA384_DIGEST_SIZE,
.maxauthsize = SHA384_DIGEST_SIZE,
.maxauthsize = SHA384_DIGEST_SIZE,
.maxauthsize = SHA384_DIGEST_SIZE,
.maxauthsize = SHA384_DIGEST_SIZE,
.maxauthsize = SHA384_DIGEST_SIZE,
.maxauthsize = SHA384_DIGEST_SIZE,
.maxauthsize = SHA384_DIGEST_SIZE,
.maxauthsize = SHA384_DIGEST_SIZE,
.maxauthsize = SHA384_DIGEST_SIZE,
.maxauthsize = SHA384_DIGEST_SIZE,
.maxauthsize = SHA384_DIGEST_SIZE,
.maxauthsize = SHA384_DIGEST_SIZE,
.maxauthsize = SHA384_DIGEST_SIZE,
.maxauthsize = SHA384_DIGEST_SIZE,
.maxauthsize = SHA384_DIGEST_SIZE,
.maxauthsize = SHA384_DIGEST_SIZE,
.maxauthsize = SHA384_DIGEST_SIZE,
.maxauthsize = SHA384_DIGEST_SIZE,
.maxauthsize = SHA384_DIGEST_SIZE,
.maxauthsize = SHA384_DIGEST_SIZE,
.maxauthsize = SHA384_DIGEST_SIZE,
.maxauthsize = SHA384_DIGEST_SIZE,
.maxauthsize = SHA384_DIGEST_SIZE,
.digestsize = SHA384_DIGEST_SIZE,
.digestsize = SHA384_DIGEST_SIZE,
rctx->cmd.u.sha.ctx_len = SHA384_DIGEST_SIZE;
.digest_size = SHA384_DIGEST_SIZE,
|| sha->ctx_len < SHA384_DIGEST_SIZE)
digest_size = SHA384_DIGEST_SIZE;
ooffset = 2 * CCP_SB_BYTES - SHA384_DIGEST_SIZE;
.digestsize = SHA384_DIGEST_SIZE,
case SHA384_DIGEST_SIZE:
else if (digestsize == SHA384_DIGEST_SIZE)
else if (digestsize == SHA384_DIGEST_SIZE)
case SHA384_DIGEST_SIZE:
.halg.digestsize = SHA384_DIGEST_SIZE,
.halg.digestsize = SHA384_DIGEST_SIZE,
.maxauthsize = SHA384_DIGEST_SIZE,
.maxauthsize = SHA384_DIGEST_SIZE,
case SHA384_DIGEST_SIZE:
.maxauthsize = SHA384_DIGEST_SIZE,
.maxauthsize = SHA384_DIGEST_SIZE,
.maxauthsize = SHA384_DIGEST_SIZE,
.maxauthsize = SHA384_DIGEST_SIZE,
.digestsize = SHA384_DIGEST_SIZE,
.digestsize = SHA384_DIGEST_SIZE,
SHA384_DIGEST_SIZE);
.digestsize = SHA384_DIGEST_SIZE,
.digestsize = SHA384_DIGEST_SIZE,
case SHA384_DIGEST_SIZE:
case SHA384_DIGEST_SIZE:
return SHA384_DIGEST_SIZE;
.maxauthsize = SHA384_DIGEST_SIZE,
.maxauthsize = SHA384_DIGEST_SIZE,
if (authsize != SHA384_DIGEST_SIZE &&
.maxauthsize = SHA384_DIGEST_SIZE,
.maxauthsize = SHA384_DIGEST_SIZE,
.base.halg.digestsize = SHA384_DIGEST_SIZE,
.base.halg.digestsize = SHA384_DIGEST_SIZE,
d = SHA384_DIGEST_SIZE / sizeof(u32);
case SHA384_DIGEST_SIZE:
case SHA384_DIGEST_SIZE:
.digestsize = SHA384_DIGEST_SIZE,
.digestsize = SHA384_DIGEST_SIZE,
.digestsize = SHA384_DIGEST_SIZE,
.digestsize = SHA384_DIGEST_SIZE,
case SHA384_DIGEST_SIZE:
.maxauthsize = SHA384_DIGEST_SIZE,
.maxauthsize = SHA384_DIGEST_SIZE,
.halg.digestsize = SHA384_DIGEST_SIZE,
.halg.digestsize = SHA384_DIGEST_SIZE,
.halg.digestsize = SHA384_DIGEST_SIZE,
.halg.digestsize = SHA384_DIGEST_SIZE,
TDREPORT_mrconfigid = TDREPORT_mrtd + SHA384_DIGEST_SIZE,
TDREPORT_mrowner = TDREPORT_mrconfigid + SHA384_DIGEST_SIZE,
TDREPORT_mrownerconfig = TDREPORT_mrowner + SHA384_DIGEST_SIZE,
TDREPORT_rtmr0 = TDREPORT_mrownerconfig + SHA384_DIGEST_SIZE,
TDREPORT_rtmr1 = TDREPORT_rtmr0 + SHA384_DIGEST_SIZE,
TDREPORT_rtmr2 = TDREPORT_rtmr1 + SHA384_DIGEST_SIZE,
TDREPORT_rtmr3 = TDREPORT_rtmr2 + SHA384_DIGEST_SIZE,
TDREPORT_servtd_hash = TDREPORT_rtmr3 + SHA384_DIGEST_SIZE,
memcpy(extend_buf, data, SHA384_DIGEST_SIZE);
void sha384_final(struct sha384_ctx *ctx, u8 out[at_least SHA384_DIGEST_SIZE]);
void sha384(const u8 *data, size_t len, u8 out[at_least SHA384_DIGEST_SIZE]);
extern const u8 sha384_zero_message_hash[SHA384_DIGEST_SIZE];
u8 out[at_least SHA384_DIGEST_SIZE]);
u8 out[at_least SHA384_DIGEST_SIZE]);
u8 out[at_least SHA384_DIGEST_SIZE]);
[HASH_ALGO_SHA384] = SHA384_DIGEST_SIZE,
void sha384_final(struct sha384_ctx *ctx, u8 out[SHA384_DIGEST_SIZE])
__sha512_final(&ctx->ctx, out, SHA384_DIGEST_SIZE);
void sha384(const u8 *data, size_t len, u8 out[SHA384_DIGEST_SIZE])
u8 out[SHA384_DIGEST_SIZE])
__hmac_sha512_final(&ctx->ctx, out, SHA384_DIGEST_SIZE);
const u8 *data, size_t data_len, u8 out[SHA384_DIGEST_SIZE])
u8 out[SHA384_DIGEST_SIZE])
static const u8 hash_testvec_consolidated[SHA384_DIGEST_SIZE] = {
static const u8 hmac_testvec_consolidated[SHA384_DIGEST_SIZE] = {
u8 digest[SHA384_DIGEST_SIZE];
#define HASH_SIZE SHA384_DIGEST_SIZE
u8 static_mr[SHA384_DIGEST_SIZE];
u8 rtmr1[SHA384_DIGEST_SIZE];