8 #include "sw/device/lib/testing/hmac_testutils.h"
9 #include "sw/device/lib/testing/test_framework/check.h"
14 OTTF_DEFINE_TEST_CONFIG();
16 static const char kData[142] =
17 "Every one suspects himself of at least one of "
18 "the cardinal virtues, and this is mine: I am "
19 "one of the few honest people that I have ever "
22 static uint32_t kHmacKey[8] = {
23 0xec4e6c89, 0x082efa98, 0x299f31d0, 0xa4093822,
24 0x03707344, 0x13198a2e, 0x85a308d3, 0x243f6a88,
42 status_t hmac_finish_polled(
const dif_hmac_t *hmac,
45 TRY(compute_hmac_testutils_finish_timeout_usec(&usec));
53 static void hmac_process_message(
const dif_hmac_t *hmac,
const char *data,
55 CHECK_STATUS_OK(hmac_testutils_push_message(hmac, data, len));
56 CHECK_STATUS_OK(hmac_testutils_fifo_empty_polled(hmac));
57 CHECK_STATUS_OK(hmac_testutils_check_message_length(hmac, len * 8));
72 kHmacTransactionConfig));
73 hmac_process_message(&hmac, kData,
sizeof(kData));
76 CHECK_STATUS_OK(hmac_finish_polled(&hmac, &digest));
77 CHECK_ARRAYS_EQ(digest.digest, kExpectedHmacDigest.digest,
81 const uint32_t kSecureWipeValue = UINT32_MAX;
85 for (
size_t i = 0; i <
ARRAYSIZE(digest.digest); ++i) {
86 uint32_t expected_value = kSecureWipeValue;
87 CHECK(digest.digest[i] == expected_value,
88 "Expected digest[%d] = %x, actual = %x", i, expected_value,
95 hmac_process_message(&hmac, kData,
sizeof(kData));
96 CHECK_STATUS_OK(hmac_testutils_finish_polled(&hmac, &digest));
97 CHECK_ARRAYS_NE(digest.digest, kExpectedHmacDigest.digest,