5 #ifndef OPENTITAN_SW_DEVICE_TESTS_PENETRATIONTESTS_JSON_RNG_FI_COMMANDS_H_
6 #define OPENTITAN_SW_DEVICE_TESTS_PENETRATIONTESTS_JSON_RNG_FI_COMMANDS_H_
7 #include "sw/device/lib/ujson/ujson_derive.h"
14 #define RNGFI_SUBCOMMAND(_, value) \
17 value(_, CsrngBiasFWOverride) \
18 value(_, CsrngBiasFWOverrideStatic) \
20 value(_, EdnRespAck) \
22 value(_, FWOverride) \
23 value(_, EntropySrcBias)
24 UJSON_SERDE_ENUM(RngFiSubcommand, rng_fi_subcommand_t, RNGFI_SUBCOMMAND);
26 #define CRYPTOFI_CSRNG_MODE(field, string) \
27 field(start_trigger, bool) \
28 field(valid_trigger, bool) \
29 field(read_trigger, bool) \
30 field(all_trigger, bool)
31 UJSON_SERDE_STRUCT(CryptoFiCsrngMode, crypto_fi_csrng_mode_t, CRYPTOFI_CSRNG_MODE);
33 #define RNGFI_CSRNG_OUTPUT(field, string) \
34 field(res, uint32_t) \
35 field(rand, uint32_t, 16) \
36 field(alerts, uint32_t, 3) \
37 field(err_status, uint32_t) \
38 field(ast_alerts, uint32_t, 2)
39 UJSON_SERDE_STRUCT(RngFiCsrngOutput, rng_fi_csrng_output_t, RNGFI_CSRNG_OUTPUT);
41 #define RNGFI_CSRNG_OV_OUTPUT(field, string) \
42 field(res, uint32_t) \
43 field(rand, uint32_t, 12) \
44 field(alerts, uint32_t, 3) \
45 field(err_status, uint32_t) \
46 field(ast_alerts, uint32_t, 2)
47 UJSON_SERDE_STRUCT(RngFiCsrngOvOutput, rng_fi_csrng_ov_output_t, RNGFI_CSRNG_OV_OUTPUT);
49 #define RNGFI_ENTRBIAS_OUTPUT(field, string) \
50 field(rand, uint32_t, 32) \
51 field(alerts, uint32_t, 3) \
52 field(err_status, uint32_t) \
53 field(ast_alerts, uint32_t, 2)
54 UJSON_SERDE_STRUCT(RngFiEntrBiasOutput, rng_fi_entropy_src_bias_t, RNGFI_ENTRBIAS_OUTPUT);
56 #define RNGFI_FWOVERWRITE_OUTPUT(field, string) \
57 field(rand, uint32_t, 32) \
58 field(alerts, uint32_t, 3) \
59 field(err_status, uint32_t) \
60 field(ast_alerts, uint32_t, 2)
61 UJSON_SERDE_STRUCT(RngFiFwOverwriteOutput, rng_fi_fw_overwrite_t, RNGFI_FWOVERWRITE_OUTPUT);
63 #define RNGFI_EDN(field, string) \
64 field(collisions, uint32_t) \
65 field(rand, uint32_t, 16) \
66 field(alerts, uint32_t, 3) \
67 field(err_status, uint32_t) \
68 field(ast_alerts, uint32_t, 2)
69 UJSON_SERDE_STRUCT(RngFiEdn, rng_fi_edn_t, RNGFI_EDN);
71 #define RNGFI_FWOVERWRITE_HEALTH(field, string) \
72 field(disable_health_check, bool)
73 UJSON_SERDE_STRUCT(RngFiFwOverwriteHealt, rng_fi_fw_overwrite_health_t, RNGFI_FWOVERWRITE_HEALTH);
75 #define RNGFI_SEED(field, string) \
76 field(seed, uint32_t, 12)
77 UJSON_SERDE_STRUCT(RngFiSeed, rng_fi_seed_t, RNGFI_SEED);