5 #include "hw/ip/aes/model/aes_modes.h"
11 #include "sw/device/lib/testing/aes_testutils.h"
12 #include "sw/device/lib/testing/edn_testutils.h"
13 #include "sw/device/lib/testing/entropy_testutils.h"
14 #include "sw/device/lib/testing/rand_testutils.h"
15 #include "sw/device/lib/testing/test_framework/check.h"
21 #define TIMEOUT (10 * 1000 * 1000)
25 #define PLAIN_TEXT_BYTES (4 * 4)
26 #define TIMEOUT_AES (72 * (PLAIN_TEXT_BYTES / 16) * 20)
28 static dif_csrng_t csrng;
29 static dif_edn_t edn0;
30 static dif_edn_t edn1;
33 OTTF_DEFINE_TEST_CONFIG();
36 static void init_peripherals(
void) {
37 CHECK_DIF_OK(dif_csrng_init(
50 AES_TESTUTILS_WAIT_FOR_STATUS(&aes, aes_state, flag, timeout);
55 static void edn_generate_sw_bits(
void) {
64 static void entropy_config(
void) {
66 CHECK_STATUS_OK(entropy_testutils_stop_all());
68 CHECK_STATUS_OK(entropy_testutils_entropy_src_init());
73 &edn1, edn_testutils_auto_params_build(
true,
80 static void execute_test(
void) {
83 LOG_INFO(
"aes_trigger_execution start");
92 .reseed_on_key_change =
false,
93 .ctrl_aux_lock =
false,
96 CHECK_STATUS_OK(aes_testutils_setup_encryption(transaction, &aes));
103 bool error_flag = (
status.value >> 31) & 0x1;
104 absl_status_t error_code =
status.value & 0x1f;
105 CHECK(error_flag && (error_code == kDeadlineExceeded));
109 LOG_INFO(
"edn_generate_sw_bits start");
110 edn_generate_sw_bits();
113 CHECK_STATUS_OK(aes_testutils_decrypt_ciphertext(transaction, &aes));