5 #ifndef OPENTITAN_SW_DEVICE_TESTS_CRYPTO_CRYPTOTEST_JSON_AES_COMMANDS_H_
6 #define OPENTITAN_SW_DEVICE_TESTS_CRYPTO_CRYPTOTEST_JSON_AES_COMMANDS_H_
7 #include "sw/device/lib/ujson/ujson_derive.h"
12 #define AES_CMD_MAX_MSG_BYTES 64
13 #define AES_CMD_MAX_KEY_BYTES 32
17 #define AES_SUBCOMMAND(_, value) \
20 UJSON_SERDE_ENUM(AesSubcommand, aes_subcommand_t, AES_SUBCOMMAND);
23 #define AES_MODE(_, value) \
29 UJSON_SERDE_ENUM(CryptotestAesMode, cryptotest_aes_mode_t, AES_MODE);
31 #define AES_OPERATION(_, value) \
34 UJSON_SERDE_ENUM(CryptotestAesOperation, cryptotest_aes_operation_t, AES_OPERATION);
36 #define AES_PADDING(_, value) \
40 UJSON_SERDE_ENUM(CryptotestAesPadding, cryptotest_aes_padding_t, AES_PADDING);
42 #define AES_DATA(field, string) \
43 field(key, uint8_t, AES_CMD_MAX_KEY_BYTES) \
44 field(key_length, size_t) \
45 field(iv, uint8_t, 16) \
46 field(input, uint8_t, AES_CMD_MAX_MSG_BYTES) \
47 field(input_len, size_t)
48 UJSON_SERDE_STRUCT(CryptotestAesData, cryptotest_aes_data_t, AES_DATA);
50 #define AES_OUTPUT(field, string) \
51 field(output, uint8_t, AES_CMD_MAX_MSG_BYTES) \
52 field(output_len, uint32_t)
53 UJSON_SERDE_STRUCT(CryptotestAesOutput, cryptotest_aes_output_t, AES_OUTPUT);