5 #ifndef OPENTITAN_SW_DEVICE_TESTS_PENETRATIONTESTS_JSON_AES_SCA_COMMANDS_H_
6 #define OPENTITAN_SW_DEVICE_TESTS_PENETRATIONTESTS_JSON_AES_SCA_COMMANDS_H_
7 #include "sw/device/lib/ujson/ujson_derive.h"
12 #define AESSCA_CMD_MAX_MSG_BYTES 16
13 #define AESSCA_CMD_MAX_KEY_BYTES 16
14 #define AESSCA_CMD_MAX_LFSR_BYTES 4
15 #define AESSCA_CMD_MAX_DATA_BYTES 16
21 #define AESSCA_SUBCOMMAND(_, value) \
22 value(_, BatchAlternativeEncrypt) \
23 value(_, BatchEncrypt) \
24 value(_, BatchEncryptRandom) \
25 value(_, BatchPlaintextSet) \
26 value(_, FvsrDataBatchEncrypt) \
27 value(_, FvsrKeyBatchEncrypt) \
28 value(_, FvsrKeyBatchGenerate) \
29 value(_, FvsrKeySet) \
30 value(_, FvsrKeyStartBatchGenerate) \
34 value(_, SeedLfsrOrder) \
35 value(_, SingleEncrypt)
36 UJSON_SERDE_ENUM(AesScaSubcommand, aes_sca_subcommand_t, AESSCA_SUBCOMMAND);
38 #define AES_SCA_KEY(field, string) \
39 field(key, uint8_t, AESSCA_CMD_MAX_KEY_BYTES) \
40 field(key_length, size_t)
41 UJSON_SERDE_STRUCT(CryptotestAesScaKey, aes_sca_key_t, AES_SCA_KEY);
43 #define AES_SCA_DATA(field, string) \
44 field(data, uint8_t, AESSCA_CMD_MAX_DATA_BYTES)
45 UJSON_SERDE_STRUCT(CryptotestAesScaData, aes_sca_data_t, AES_SCA_DATA);
47 #define AES_SCA_TEXT(field, string) \
48 field(text, uint8_t, AESSCA_CMD_MAX_DATA_BYTES) \
49 field(text_length, size_t)
50 UJSON_SERDE_STRUCT(CryptotestAesScaText, aes_sca_text_t, AES_SCA_TEXT);
52 #define AES_SCA_LFSR(field, string) \
53 field(seed, uint8_t, AESSCA_CMD_MAX_LFSR_BYTES)
54 UJSON_SERDE_STRUCT(CryptotestAesScaLfsr, aes_sca_lfsr_t, AES_SCA_LFSR);
56 #define AES_SCA_CIPHERTEXT(field, string) \
57 field(ciphertext, uint8_t, AESSCA_CMD_MAX_MSG_BYTES) \
58 field(ciphertext_length, uint32_t)
59 UJSON_SERDE_STRUCT(CryptotestAesScaCiphertext, aes_sca_ciphertext_t, AES_SCA_CIPHERTEXT);
61 #define AES_SCA_FPGA_MODE(field, string) \
62 field(fpga_mode, uint8_t)
63 UJSON_SERDE_STRUCT(CryptotestAesScaFpgaMode, aes_sca_fpga_mode_t, AES_SCA_FPGA_MODE);
65 #define AES_SCA_CMD(field, string) \
67 UJSON_SERDE_STRUCT(CryptotestAesScaCmd, aes_sca_cmd_t, AES_SCA_CMD);