12 #include "sw/device/lib/testing/hmac_testutils.h"
13 #include "sw/device/lib/testing/test_framework/check.h"
16 #include "hmac_regs.h"
18 #include "sw/device/lib/dif/autogen/dif_hmac_autogen.h"
20 OTTF_DEFINE_TEST_CONFIG();
42 static const char kData[142] =
43 "Every one suspects himself of at least one of "
44 "the cardinal virtues, and this is mine: I am "
45 "one of the few honest people that I have ever "
48 static const char kData2[8] =
"Help Us ";
49 static const char kData2_endian[8] =
"pleH sU ";
111 CHECK_DIF_OK(dif_hmac_init(base_addr, hmac));
114 static void run_test_endianness(
const dif_hmac_t *hmac,
const char *data,
118 CHECK_STATUS_OK(hmac_testutils_push_message(hmac, data, len));
119 CHECK_STATUS_OK(hmac_testutils_fifo_empty_polled(hmac));
120 CHECK_STATUS_OK(hmac_testutils_check_message_length(hmac, len * 8));
123 hmac_testutils_finish_and_check_polled(hmac, expected_digest));
127 LOG_INFO(
"Running HMAC DIF test...");
132 "Running test SHA256 pass little-endian digest and little-endian "
134 run_test_endianness(&hmac, kData,
sizeof(kData), kHmacconfig_littled_littlem,
135 &kExpectedShaDigest);
138 "Running test SHA256 with big-endian digest,little-endian message "
140 run_test_endianness(&hmac, kData,
sizeof(kData), kHmacconfig_bigd_littlem,
141 &kExpectedShaDigest_bigendian);
144 "Running test SHA256 pass with big-endian digest,big endian message "
146 run_test_endianness(&hmac, kData2,
sizeof(kData2), kHmacconfig_bigd_bigm,
147 &kExpectedShaDigest_shortmessage_bigendian);
150 "Running test SHA256 pass little-endian digest, big endian message "
152 run_test_endianness(&hmac, kData2,
sizeof(kData2), kHmacconfig_littled_bigm,
153 &kExpectedShaDigest_shortmessage);
156 "Running test SHA256 pass big-endian digest, little endian message "
158 " with input message byte-swapped to verify the in-built byteswap "
160 run_test_endianness(&hmac, kData2_endian,
sizeof(kData2_endian),
161 kHmacconfig_bigd_littlem,
162 &kExpectedShaDigest_shortmessage_bigendian);