5 #ifndef OPENTITAN_SW_DEVICE_TESTS_PENETRATIONTESTS_JSON_SHA3_SCA_COMMANDS_H_
6 #define OPENTITAN_SW_DEVICE_TESTS_PENETRATIONTESTS_JSON_SHA3_SCA_COMMANDS_H_
7 #include "sw/device/lib/ujson/ujson_derive.h"
12 #define SHA3SCA_CMD_MAX_BATCH_DIGEST_BYTES 32
13 #define SHA3SCA_CMD_MAX_DATA_BYTES 16
14 #define SHA3SCA_CMD_MAX_LFSR_BYTES 4
15 #define SHA3SCA_CMD_MAX_MSG_BYTES 16
16 #define SHA3SCA_CMD_MAX_STATUS_BYTES 1
20 #define SHA3_SCA_SUBCOMMAND(_, value) \
22 value(_, SingleAbsorb) \
24 value(_, FixedMessageSet) \
26 value(_, DisableMasking)
27 UJSON_SERDE_ENUM(Sha3ScaSubcommand, sha3_sca_subcommand_t, SHA3_SCA_SUBCOMMAND);
29 #define SHA3_SCA_MASKS(field, string) \
30 field(masks_off, uint8_t)
31 UJSON_SERDE_STRUCT(CryptotestSha3ScaMasks, cryptotest_sha3_sca_masks_off_t, SHA3_SCA_MASKS);
33 #define SHA3_SCA_LFSR(field, string) \
34 field(seed, uint8_t, SHA3SCA_CMD_MAX_LFSR_BYTES)
35 UJSON_SERDE_STRUCT(CryptotestSha3ScaLfsr, cryptotest_sha3_sca_lfsr_t, SHA3_SCA_LFSR);
37 #define SHA3_SCA_DATA(field, string) \
38 field(data, uint8_t, SHA3SCA_CMD_MAX_DATA_BYTES)
39 UJSON_SERDE_STRUCT(CryptotestSha3ScaData, cryptotest_sha3_sca_data_t, SHA3_SCA_DATA);
41 #define SHA3_SCA_FPGA_MODE(field, string) \
42 field(fpga_mode, uint8_t)
43 UJSON_SERDE_STRUCT(CryptotestSha3ScaFpgaMode, cryptotest_sha3_sca_fpga_mode_t, SHA3_SCA_FPGA_MODE);
45 #define SHA3_SCA_MSG(field, string) \
46 field(msg, uint8_t, SHA3SCA_CMD_MAX_MSG_BYTES) \
47 field(msg_length, size_t)
48 UJSON_SERDE_STRUCT(CryptotestSha3ScaMsg, cryptotest_sha3_sca_msg_t, SHA3_SCA_MSG);
50 #define SHA3_SCA_STATUS(field, string) \
51 field(status, uint8_t)
52 UJSON_SERDE_STRUCT(CryptotestSha3ScaStatus, cryptotest_sha3_sca_status_t, SHA3_SCA_STATUS);
54 #define SHA3_SCA_BATCH_DIGEST(field, string) \
55 field(batch_digest, uint8_t, SHA3SCA_CMD_MAX_BATCH_DIGEST_BYTES)
56 UJSON_SERDE_STRUCT(CryptotestSha3ScaBatchDigest, cryptotest_sha3_sca_batch_digest_t, SHA3_SCA_BATCH_DIGEST);