5 #ifndef OPENTITAN_SW_DEVICE_TESTS_PENETRATIONTESTS_JSON_HMAC_SCA_COMMANDS_H_
6 #define OPENTITAN_SW_DEVICE_TESTS_PENETRATIONTESTS_JSON_HMAC_SCA_COMMANDS_H_
7 #include "sw/device/lib/ujson/ujson_derive.h"
12 #define HMACSCA_CMD_MAX_MESSAGE_BYTES 16
13 #define HMACSCA_CMD_MAX_KEY_BYTES 32
14 #define HMACSCA_CMD_MAX_TAG_BYTES 32
18 #define HMACSCA_SUBCOMMAND(_, value) \
21 value(_, BatchRandom) \
23 UJSON_SERDE_ENUM(HmacScaSubcommand, hmac_sca_subcommand_t, HMACSCA_SUBCOMMAND);
25 #define HMACSCA_MESSAGE(field, string) \
26 field(message, uint8_t, HMACSCA_CMD_MAX_MESSAGE_BYTES)
27 UJSON_SERDE_STRUCT(PenetrationtestHmacScaMessage, penetrationtest_hmac_sca_message_t, HMACSCA_MESSAGE);
29 #define HMACSCA_KEY(field, string) \
30 field(key, uint8_t, HMACSCA_CMD_MAX_KEY_BYTES) \
31 field(mask, uint8_t, HMACSCA_CMD_MAX_KEY_BYTES)
32 UJSON_SERDE_STRUCT(PenetrationtestHmacScaKey, penetrationtest_hmac_sca_key_t, HMACSCA_KEY);
34 #define HMACSCA_TAG(field, string) \
35 field(tag, uint8_t, HMACSCA_CMD_MAX_TAG_BYTES)
36 UJSON_SERDE_STRUCT(PenetrationtestHmacScaTag, penetrationtest_hmac_sca_tag_t, HMACSCA_TAG);
38 #define HMACSCA_NUM_IT(field, string) \
39 field(num_iterations, uint32_t)
40 UJSON_SERDE_STRUCT(PenetrationtestHmacScaNumIt, penetrationtest_hmac_sca_num_it_t, HMACSCA_NUM_IT);