5 #ifndef OPENTITAN_SW_DEVICE_TESTS_PENETRATIONTESTS_JSON_KMAC_SCA_COMMANDS_H_
6 #define OPENTITAN_SW_DEVICE_TESTS_PENETRATIONTESTS_JSON_KMAC_SCA_COMMANDS_H_
7 #include "sw/device/lib/ujson/ujson_derive.h"
12 #define KMACSCA_CMD_MAX_BATCH_DIGEST_BYTES 32
13 #define KMACSCA_CMD_MAX_DATA_BYTES 16
14 #define KMACSCA_CMD_MAX_KEY_BYTES 16
15 #define KMACSCA_CMD_MAX_LFSR_BYTES 4
16 #define KMACSCA_CMD_MAX_MSG_BYTES 16
20 #define KMAC_SCA_SUBCOMMAND(_, value) \
23 value(_, SingleAbsorb) \
25 value(_, FixedKeySet) \
27 UJSON_SERDE_ENUM(KmacScaSubcommand, kmac_sca_subcommand_t, KMAC_SCA_SUBCOMMAND);
29 #define KMAC_SCA_KEY(field, string) \
30 field(key, uint8_t, KMACSCA_CMD_MAX_KEY_BYTES) \
31 field(key_length, size_t)
32 UJSON_SERDE_STRUCT(CryptotestKmacScaKey, cryptotest_kmac_sca_key_t, KMAC_SCA_KEY);
34 #define KMAC_SCA_LFSR(field, string) \
35 field(seed, uint8_t, KMACSCA_CMD_MAX_LFSR_BYTES)
36 UJSON_SERDE_STRUCT(CryptotestKmacScaLfsr, cryptotest_kmac_sca_lfsr_t, KMAC_SCA_LFSR);
38 #define KMAC_SCA_FPGA_MODE(field, string) \
39 field(fpga_mode, uint8_t)
40 UJSON_SERDE_STRUCT(CryptotestKmacScaFpgaMode, cryptotest_kmac_sca_fpga_mode_t, KMAC_SCA_FPGA_MODE);
42 #define KMAC_SCA_DATA(field, string) \
43 field(data, uint8_t, KMACSCA_CMD_MAX_DATA_BYTES)
44 UJSON_SERDE_STRUCT(CryptotestKmacScaData, cryptotest_kmac_sca_data_t, KMAC_SCA_DATA);
46 #define KMAC_SCA_MSG(field, string) \
47 field(msg, uint8_t, KMACSCA_CMD_MAX_MSG_BYTES) \
48 field(msg_length, size_t)
49 UJSON_SERDE_STRUCT(CryptotestKmacScaMsg, cryptotest_kmac_sca_msg_t, KMAC_SCA_MSG);
51 #define KMAC_SCA_BATCH_DIGEST(field, string) \
52 field(batch_digest, uint8_t, KMACSCA_CMD_MAX_BATCH_DIGEST_BYTES)
53 UJSON_SERDE_STRUCT(CryptotestKmacScaBatchDigest, cryptotest_kmac_sca_batch_digest_t, KMAC_SCA_BATCH_DIGEST);