5#ifndef OPENTITAN_SW_DEVICE_LIB_TESTING_HMAC_TESTUTILS_H_
6#define OPENTITAN_SW_DEVICE_LIB_TESTING_HMAC_TESTUTILS_H_
13#include "sw/device/lib/base/status.h"
15#include "sw/device/lib/testing/test_framework/check.h"
17#define MODULE_ID MAKE_MODULE_ID('h', 'm', 'h')
39static inline status_t compute_hmac_testutils_fifo_empty_usec(
41 uint64_t result = udiv64_slow((80 + 10) * 1000000,
kClockFreqCpuHz, NULL) + 1;
42 TRY_CHECK(result <= UINT32_MAX,
"timeout must fit in uint32_t");
43 *out_usec = (uint32_t)result;
53static inline status_t compute_hmac_testutils_finish_timeout_usec(
57 TRY_CHECK(result <= UINT32_MAX,
"timeout must fit in uint32_t");
58 *out_usec = (uint32_t)result;
82extern const uint8_t kHmacRefLongKey[100];
93extern const char kHmacRefData[34];
109status_t hmac_testutils_check_message_length(
const dif_hmac_t *hmac,
110 uint64_t expected_sent_bits);
120status_t hmac_testutils_fifo_empty_polled(
const dif_hmac_t *hmac);
131status_t hmac_testutils_finish_polled(
const dif_hmac_t *hmac,
144status_t hmac_testutils_finish_and_check_polled(
158status_t hmac_testutils_push_message(
const dif_hmac_t *hmac,
const char *data,