6 #include "sw/device/lib/base/status.h"
7 #include "sw/device/lib/crypto/drivers/entropy.h"
8 #include "sw/device/lib/testing/test_framework/check.h"
10 #include "sw/device/lib/testing/test_framework/ujson_ottf.h"
11 #include "sw/device/lib/ujson/ujson.h"
14 #include "sw/device/tests/penetrationtests/json/aes_sca_commands.h"
15 #include "sw/device/tests/penetrationtests/json/commands.h"
16 #include "sw/device/tests/penetrationtests/json/edn_sca_commands.h"
17 #include "sw/device/tests/penetrationtests/json/hmac_sca_commands.h"
18 #include "sw/device/tests/penetrationtests/json/ibex_sca_commands.h"
19 #include "sw/device/tests/penetrationtests/json/kmac_sca_commands.h"
20 #include "sw/device/tests/penetrationtests/json/otbn_sca_commands.h"
21 #include "sw/device/tests/penetrationtests/json/prng_sca_commands.h"
22 #include "sw/device/tests/penetrationtests/json/sha3_sca_commands.h"
23 #include "sw/device/tests/penetrationtests/json/trigger_sca_commands.h"
26 #include "lib/extclk_sca_fi.h"
27 #include "sca/aes_sca.h"
28 #include "sca/edn_sca.h"
29 #include "sca/hmac_sca.h"
30 #include "sca/ibex_sca.h"
31 #include "sca/kmac_sca.h"
32 #include "sca/otbn_sca.h"
33 #include "sca/prng_sca.h"
34 #include "sca/sha3_sca.h"
35 #include "sca/trigger_sca.h"
37 OTTF_DEFINE_TEST_CONFIG(.enable_uart_flow_control =
true);
41 penetrationtest_cmd_t cmd;
42 TRY(ujson_deserialize_penetrationtest_cmd_t(uj, &cmd));
44 case kPenetrationtestCommandAesSca:
45 RESP_ERR(uj, handle_aes_sca(uj));
47 case kPenetrationtestCommandEdnSca:
48 RESP_ERR(uj, handle_edn_sca(uj));
50 case kPenetrationtestCommandExtClkScaFi:
51 RESP_ERR(uj, handle_extclk_sca_fi(uj));
53 case kPenetrationtestCommandHmacSca:
54 RESP_ERR(uj, handle_hmac_sca(uj));
56 case kPenetrationtestCommandIbexSca:
57 RESP_ERR(uj, handle_ibex_sca(uj));
59 case kPenetrationtestCommandKmacSca:
60 RESP_ERR(uj, handle_kmac_sca(uj));
62 case kPenetrationtestCommandOtbnSca:
63 RESP_ERR(uj, handle_otbn_sca(uj));
65 case kPenetrationtestCommandPrngSca:
66 RESP_ERR(uj, handle_prng_sca(uj));
68 case kPenetrationtestCommandSha3Sca:
69 RESP_ERR(uj, handle_sha3_sca(uj));
71 case kPenetrationtestCommandTriggerSca:
72 RESP_ERR(uj, handle_trigger_sca(uj));
75 LOG_ERROR(
"Unrecognized command: %d", cmd);
76 RESP_ERR(uj, INVALID_ARGUMENT());
84 CHECK_STATUS_OK(entropy_complex_init());
85 ujson_t uj = ujson_ottf_console();
86 return status_ok(process_cmd(&uj));