5 #include "hw/ip/aes/model/aes_modes.h"
10 #include "sw/device/lib/testing/aes_testutils.h"
11 #include "sw/device/lib/testing/test_framework/check.h"
14 #define TIMEOUT (1000 * 1000)
19 static const uint8_t kKeyShare1[] = {
20 0x0f, 0x1f, 0x2f, 0x3f, 0x4f, 0x5f, 0x6f, 0x7f, 0x8f, 0x9f, 0xaf,
21 0xbf, 0xcf, 0xdf, 0xef, 0xff, 0x0a, 0x1a, 0x2a, 0x3a, 0x4a, 0x5a,
22 0x6a, 0x7a, 0x8a, 0x9a, 0xaa, 0xba, 0xca, 0xda, 0xea, 0xfa,
25 OTTF_DEFINE_TEST_CONFIG();
27 status_t execute_test(dif_aes_t *aes) {
30 uint8_t key_share0[
sizeof(kAesModesKey256)];
31 for (
int i = 0; i <
sizeof(kAesModesKey256); ++i) {
32 key_share0[i] = kAesModesKey256[i] ^ kKeyShare1[i];
37 memcpy(key.share0, key_share0,
sizeof(key.share0));
38 memcpy(key.share1, kKeyShare1,
sizeof(key.share1));
42 memcpy(iv.iv, kAesModesIvCbc,
sizeof(iv.iv));
52 .reseed_on_key_change =
false,
53 .ctrl_aux_lock =
false,
59 memcpy(in_data_plain.data, kAesModesPlainText,
sizeof(in_data_plain.data));
73 CHECK_ARRAYS_EQ((uint8_t *)out_data.data, kAesModesCipherTextCbc256,
74 sizeof(out_data.data));
89 CHECK_ARRAYS_NE((uint8_t *)iv.iv, kAesModesIvCbc,
sizeof(kAesModesIvCbc));
100 CHECK_DIF_OK(dif_aes_init_from_dt(kDtAes, &aes));
103 return status_ok(execute_test(&aes));