sha384
_(sha384),
sha384(data, len, out);
PCR_ATTR_BUILD(TPM_ALG_SHA384, sha384);
struct hmac_sha384_key sha384;
hmac_sha384_preparekey(&k.sha384, raw_key, raw_key_len);
for (int i = 0; i < ARRAY_SIZE(k.sha384.key.istate.h); i++) {
istate64[i] = cpu_to_be64(k.sha384.key.istate.h[i]);
ostate64[i] = cpu_to_be64(k.sha384.key.ostate.h[i]);
__be64 *sha384 = (__be64 *)chcr_sha384_init;
ldkey[i] = be64_to_cpu(sha384[i]);
hmac_sha384_init_usingrawkey(&hmac->sha384, key, key_len);
hmac_sha384_update(&hmac->sha384, data, data_len);
hmac_sha384_final(&hmac->sha384, out);
sha384(data, data_len, out);
void sha384(const u8 *data, size_t len, u8 out[at_least SHA384_DIGEST_SIZE]);
struct hmac_sha384_ctx sha384;
EXPORT_SYMBOL_GPL(sha384);
sha384(raw_key, raw_key_len, derived_key.b);
#define HASH sha384
struct sha384_ctx sha384;
sha384_init(&ctx.sha384);
sha384_update(&ctx.sha384, mr->mr_value, mr->mr_size);
sha384_update(&ctx.sha384, data, mr->mr_size);
sha384_final(&ctx.sha384, mr->mr_value);