9 #include "sw/device/silicon_creator/lib/drivers/kmac.h"
10 #include "sw/device/silicon_creator/lib/sigverify/sphincsplus/params.h"
11 #include "sw/device/silicon_creator/lib/sigverify/sphincsplus/thash.h"
13 rom_error_t thash(
const uint32_t *in,
size_t inblocks,
const spx_ctx_t *ctx,
17 HARDENED_RETURN_IF_ERROR(kmac_shake256_start());
18 kmac_shake256_absorb_words(ctx->
pub_seed, kSpxNWords);
19 kmac_shake256_absorb_words(addr->addr,
ARRAYSIZE(addr->addr));
20 kmac_shake256_absorb_words(in, inblocks * kSpxNWords);
21 kmac_shake256_squeeze_start();
22 return kmac_shake256_squeeze_end(out, kSpxNWords);