5 #ifndef OPENTITAN_SW_DEVICE_SILICON_CREATOR_LIB_DRIVERS_KMAC_H_
6 #define OPENTITAN_SW_DEVICE_SILICON_CREATOR_LIB_DRIVERS_KMAC_H_
15 #include "sw/device/silicon_creator/lib/error.h"
29 rom_error_t kmac_keymgr_configure(
void);
37 rom_error_t kmac_kmac256_sw_configure(
void);
45 rom_error_t kmac_kmac256_hw_configure(
void);
56 rom_error_t kmac_shake256_configure(
void);
76 rom_error_t kmac_shake256_start(
void);
94 void kmac_shake256_absorb(
const uint8_t *in,
size_t inlen);
113 void kmac_shake256_absorb_words(
const uint32_t *in,
size_t inlen);
129 void kmac_shake256_squeeze_start(
void);
146 rom_error_t kmac_shake256_squeeze_end(uint32_t *out,
size_t outlen);
156 rom_error_t kmac_kmac256_sw_key(
const uint32_t *key,
size_t len);
167 void kmac_kmac256_set_prefix(
const void *prefix,
size_t len);
175 inline rom_error_t kmac_kmac256_start(
void) {
return kmac_shake256_start(); }
183 inline void kmac_kmac256_absorb(
const void *data,
size_t len) {
184 kmac_shake256_absorb((
const uint8_t *)data, len);
195 rom_error_t kmac_kmac256_final(uint32_t *result,
size_t rlen);