5 #ifndef OPENTITAN_SW_DEVICE_LIB_TESTING_JSON_PROVISIONING_DATA_H_
6 #define OPENTITAN_SW_DEVICE_LIB_TESTING_JSON_PROVISIONING_DATA_H_
8 #include "sw/device/lib/ujson/ujson_derive.h"
14 #define MODULE_ID MAKE_MODULE_ID('j', 'p', 'd')
20 #define STRUCT_MANUF_CP_PROVISIONING_DATA(field, string) \
21 field(device_id, uint32_t, 8) \
22 field(manuf_state, uint32_t, 8) \
23 field(wafer_auth_secret, uint32_t, 8) \
24 field(test_unlock_token_hash, uint64_t, 2) \
25 field(test_exit_token_hash, uint64_t, 2)
26 UJSON_SERDE_STRUCT(ManufCpProvisioningData, \
27 manuf_cp_provisioning_data_t, \
28 STRUCT_MANUF_CP_PROVISIONING_DATA);
35 #define STRUCT_MANUF_FT_INDIVIDUALIZE_DATA(field, string) \
36 field(device_id, uint32_t, 8)
37 UJSON_SERDE_STRUCT(ManufFtIndividualizeData, \
38 manuf_ft_individualize_data_t, \
39 STRUCT_MANUF_FT_INDIVIDUALIZE_DATA);
46 #define STRUCT_ECC_P256_PUBLIC_KEY(field, string) \
47 field(x, uint32_t, 8) \
49 UJSON_SERDE_STRUCT(EccP256PublicKey, \
50 ecc_p256_public_key_t, \
51 STRUCT_ECC_P256_PUBLIC_KEY);
59 #define STRUCT_LC_TOKEN_HASH(field, string) \
60 field(hash, uint64_t, 2)
61 UJSON_SERDE_STRUCT(LcTokenHash, \
63 STRUCT_LC_TOKEN_HASH);
70 #define STRUCT_MANUF_CERTGEN_INPUTS(field, string) \
71 field(rom_ext_measurement, uint32_t, 8) \
72 field(rom_ext_security_version, uint32_t) \
73 field(owner_manifest_measurement, uint32_t, 8) \
74 field(owner_measurement, uint32_t, 8) \
75 field(owner_security_version, uint32_t) \
76 field(dice_auth_key_key_id, uint8_t, 20) \
77 field(ext_auth_key_key_id, uint8_t, 20)
78 UJSON_SERDE_STRUCT(ManufCertgenInputs, \
79 manuf_certgen_inputs_t, \
80 STRUCT_MANUF_CERTGEN_INPUTS);
95 #define STRUCT_PERSO_BLOB(field, string) \
96 field(num_objs, size_t) \
97 field(next_free, size_t) \
98 field(body, uint8_t, 4096)
99 UJSON_SERDE_STRUCT(PersoBlob, \
108 #define STRUCT_SHA256_HASH(field, string) \
109 field(data, uint32_t, 8)
110 UJSON_SERDE_STRUCT(SerdesSha256Hash, \
111 serdes_sha256_hash_t, \