5 #ifndef OPENTITAN_SW_DEVICE_TESTS_PENETRATIONTESTS_JSON_CRYPTO_FI_COMMANDS_H_
6 #define OPENTITAN_SW_DEVICE_TESTS_PENETRATIONTESTS_JSON_CRYPTO_FI_COMMANDS_H_
7 #include "sw/device/lib/ujson/ujson_derive.h"
14 #define CRYPTOFI_SUBCOMMAND(_, value) \
19 value(_, ShadowRegAccess) \
20 value(_, ShadowRegRead)
21 UJSON_SERDE_ENUM(CryptoFiSubcommand, crypto_fi_subcommand_t, CRYPTOFI_SUBCOMMAND);
23 #define CRYPTOFI_AES_MODE(field, string) \
24 field(key_trigger, bool) \
25 field(plaintext_trigger, bool) \
26 field(encrypt_trigger, bool) \
27 field(ciphertext_trigger, bool)
28 UJSON_SERDE_STRUCT(CryptoFiAesMode, crypto_fi_aes_mode_t, CRYPTOFI_AES_MODE);
30 #define CRYPTOFI_KMAC_MODE(field, string) \
31 field(key_trigger, bool) \
32 field(absorb_trigger, bool) \
33 field(static_trigger, bool) \
34 field(squeeze_trigger, bool)
35 UJSON_SERDE_STRUCT(CryptoFiKmacMode, crypto_fi_kmac_mode_t, CRYPTOFI_KMAC_MODE);
37 #define CRYPTOFI_AES_CIPHERTEXT(field, string) \
38 field(ciphertext, uint8_t, 16) \
39 field(alerts, uint32_t, 3) \
40 field(err_status, uint32_t) \
41 field(ast_alerts, uint32_t, 2)
42 UJSON_SERDE_STRUCT(FiAesCiphertext, crypto_fi_aes_ciphertext_t, CRYPTOFI_AES_CIPHERTEXT);
44 #define CRYPTOFI_KMAC_STATE(field, string) \
45 field(share0, uint8_t, 200) \
46 field(share1, uint8_t, 200) \
47 field(digest, uint8_t, 8) \
48 field(alerts, uint32_t, 3) \
49 field(err_status, uint32_t) \
50 field(ast_alerts, uint32_t, 2)
51 UJSON_SERDE_STRUCT(FiKmacState, crypto_fi_kmac_state_t, CRYPTOFI_KMAC_STATE);
53 #define CRYPTOFI_KMAC_DIGEST(field, string) \
54 field(digest, uint8_t, 8) \
55 field(digest_2nd, uint8_t, 8) \
56 field(alerts, uint32_t, 3) \
57 field(err_status, uint32_t) \
58 field(ast_alerts, uint32_t, 2)
59 UJSON_SERDE_STRUCT(FiKmacDigest, crypto_fi_kmac_digest_t, CRYPTOFI_KMAC_DIGEST);
61 #define CRYPTOFI_TEST_RESULT_MULT(field, string) \
62 field(result, uint32_t, 3) \
63 field(alerts, uint32_t, 3) \
64 field(err_status, uint32_t) \
65 field(ast_alerts, uint32_t, 2)
66 UJSON_SERDE_STRUCT(CRYPTOFITestResultMult, crypto_fi_test_result_mult_t, CRYPTOFI_TEST_RESULT_MULT);