5 #ifndef OPENTITAN_SW_DEVICE_LIB_CRYPTO_IMPL_SHA2_SHA512_H_
6 #define OPENTITAN_SW_DEVICE_LIB_CRYPTO_IMPL_SHA2_SHA512_H_
9 #include "sw/device/lib/crypto/drivers/otbn.h"
19 kSha384DigestBits = 384,
23 kSha384DigestBytes = kSha384DigestBits / 8,
27 kSha384DigestWords = kSha384DigestBytes /
sizeof(uint32_t),
31 kSha512MessageBlockBits = 1024,
35 kSha512MessageBlockBytes = kSha512MessageBlockBits / 8,
39 kSha512MessageBlockWords = kSha512MessageBlockBytes /
sizeof(uint32_t),
43 kSha512StateBits = 512,
47 kSha512StateBytes = kSha512StateBits / 8,
51 kSha512StateWords = kSha512StateBytes /
sizeof(uint32_t),
55 kSha512DigestBits = 512,
59 kSha512DigestBytes = kSha512DigestBits / 8,
63 kSha512DigestWords = kSha512DigestBytes /
sizeof(uint32_t),
97 uint32_t
H[kSha512StateWords];
132 status_t sha384(
const uint8_t *msg,
const size_t msg_len, uint32_t *digest);
163 const size_t msg_len);
196 status_t sha512(
const uint8_t *msg,
const size_t msg_len, uint32_t *digest);
227 const size_t msg_len);