sha512
} sha512;
} sha512;
_(sha512),
sha512(data, len, out);
PCR_ATTR_BUILD(TPM_ALG_SHA512, sha512);
struct hmac_sha512_key sha512;
hmac_sha512_preparekey(&k.sha512, raw_key, raw_key_len);
for (int i = 0; i < ARRAY_SIZE(k.sha512.key.istate.h); i++) {
istate64[i] = cpu_to_be64(k.sha512.key.istate.h[i]);
ostate64[i] = cpu_to_be64(k.sha512.key.ostate.h[i]);
__be64 *sha512 = (__be64 *)chcr_sha512_init;
ldkey[i] = be64_to_cpu(sha512[i]);
struct sha512_state *sha512;
sha512 = (struct sha512_state *)pad;
swap_data64(sha512->state, SHA512_DIGEST_SIZE);
struct sha512_state *sha512;
sha512 = (struct sha512_state *)pad;
swap_data64(sha512->state, SHA512_DIGEST_SIZE);
memcpy(csbcpb->cpb.sha512.input_partial_digest,
csbcpb->cpb.sha512.message_digest,
memcpy(sctx->state, csbcpb->cpb.sha512.message_digest, SHA512_DIGEST_SIZE);
memcpy(csbcpb->cpb.sha512.input_partial_digest, sctx->state, SHA512_DIGEST_SIZE);
csbcpb->cpb.sha512.message_bit_length_lo = count0 << 3;
csbcpb->cpb.sha512.message_bit_length_hi = (count1 << 3) |
memcpy(out, csbcpb->cpb.sha512.message_digest, SHA512_DIGEST_SIZE);
memcpy(csbcpb->cpb.sha512.message_digest, sctx->state, SHA512_DIGEST_SIZE);
struct cop_symcpb_sha512 sha512;
struct sha512_ctx sha512;
ctx.sha512 = params->hashstate->sha512;
sha512_update(&ctx.sha512, data, params->block_size);
sha512_final(&ctx.sha512, out);
sha512(data, size, out);
sha512_init(&ctx.sha512);
sha512_update(&ctx.sha512, padded_salt, padded_salt_size);
res = kmemdup(&ctx.sha512, sizeof(ctx.sha512), GFP_KERNEL);
void sha512(const u8 *data, size_t len, u8 out[at_least SHA512_DIGEST_SIZE]);
EXPORT_SYMBOL_GPL(sha512);
sha512(raw_key, raw_key_len, derived_key.b);
#define HASH sha512