4 #ifndef OPENTITAN_SW_DEVICE_SILICON_CREATOR_LIB_DRIVERS_HMAC_H_
5 #define OPENTITAN_SW_DEVICE_SILICON_CREATOR_LIB_DRIVERS_HMAC_H_
10 #include "sw/device/silicon_creator/lib/error.h"
20 kHmacDigestNumBytes = 32,
24 kHmacDigestNumWords = kHmacDigestNumBytes /
sizeof(uint32_t),
31 uint32_t digest[kHmacDigestNumWords];
42 uint32_t msg_len_upper;
43 uint32_t msg_len_lower;
44 uint32_t digest[kHmacDigestNumWords];
57 void hmac_sha256_configure(
bool big_endian_digest);
64 void hmac_sha256_start(
void);
69 inline void hmac_sha256_init(
void) {
70 hmac_sha256_configure(
false);
84 void hmac_sha256_update(
const void *data,
size_t len);
96 void hmac_sha256_update_words(
const uint32_t *data,
size_t len);
101 void hmac_sha256_process(
void);
114 void hmac_sha256_final_truncated(uint32_t *digest,
size_t len);
124 hmac_sha256_final_truncated(digest->digest,
ARRAYSIZE(digest->digest));
135 void hmac_sha256(
const void *data,
size_t len,
hmac_digest_t *digest);