xref: /aosp_15_r20/external/tpm2-tss/src/tss2-fapi/tpm_json_serialize.h (revision 758e9fba6fc9adbf15340f70c73baee7b168b1c9)
1*758e9fbaSOystein Eftevaag /* SPDX-License-Identifier: BSD-2-Clause */
2*758e9fbaSOystein Eftevaag /*******************************************************************************
3*758e9fbaSOystein Eftevaag  * Copyright 2018-2019, Fraunhofer SIT sponsored by Infineon Technologies AG
4*758e9fbaSOystein Eftevaag  * All rights reserved.
5*758e9fbaSOystein Eftevaag  ******************************************************************************/
6*758e9fbaSOystein Eftevaag #ifndef FAPI_TPM_JSON_SERIALIZE_H
7*758e9fbaSOystein Eftevaag #define FAPI_TPM_JSON_SERIALIZE_H
8*758e9fbaSOystein Eftevaag 
9*758e9fbaSOystein Eftevaag #include <stdbool.h>
10*758e9fbaSOystein Eftevaag #include <json-c/json.h>
11*758e9fbaSOystein Eftevaag #include <json-c/json_util.h>
12*758e9fbaSOystein Eftevaag 
13*758e9fbaSOystein Eftevaag #include "tss2_tpm2_types.h"
14*758e9fbaSOystein Eftevaag #include "fapi_int.h"
15*758e9fbaSOystein Eftevaag 
16*758e9fbaSOystein Eftevaag #define YES 1
17*758e9fbaSOystein Eftevaag #define NO 0
18*758e9fbaSOystein Eftevaag 
19*758e9fbaSOystein Eftevaag TSS2_RC
20*758e9fbaSOystein Eftevaag ifapi_json_TPM2_HANDLE_serialize(const TPM2_HANDLE in, json_object **jso);
21*758e9fbaSOystein Eftevaag 
22*758e9fbaSOystein Eftevaag TSS2_RC
23*758e9fbaSOystein Eftevaag ifapi_json_UINT16_serialize(const UINT16 in, json_object **jso);
24*758e9fbaSOystein Eftevaag 
25*758e9fbaSOystein Eftevaag TSS2_RC
26*758e9fbaSOystein Eftevaag ifapi_json_UINT32_serialize(const UINT32 in, json_object **jso);
27*758e9fbaSOystein Eftevaag 
28*758e9fbaSOystein Eftevaag TSS2_RC
29*758e9fbaSOystein Eftevaag ifapi_json_INT32_serialize(const INT32 in, json_object **jso);
30*758e9fbaSOystein Eftevaag 
31*758e9fbaSOystein Eftevaag TSS2_RC
32*758e9fbaSOystein Eftevaag ifapi_json_UINT64_serialize(const UINT64 in, json_object **jso);
33*758e9fbaSOystein Eftevaag 
34*758e9fbaSOystein Eftevaag TSS2_RC
35*758e9fbaSOystein Eftevaag ifapi_json_TPM2_GENERATED_serialize(const TPM2_GENERATED in, json_object **jso);
36*758e9fbaSOystein Eftevaag 
37*758e9fbaSOystein Eftevaag TSS2_RC
38*758e9fbaSOystein Eftevaag ifapi_json_TPM2_ALG_ID_serialize(const TPM2_ALG_ID in, json_object **jso);
39*758e9fbaSOystein Eftevaag 
40*758e9fbaSOystein Eftevaag TSS2_RC
41*758e9fbaSOystein Eftevaag ifapi_json_TPM2_ECC_CURVE_serialize(const TPM2_ECC_CURVE in, json_object **jso);
42*758e9fbaSOystein Eftevaag 
43*758e9fbaSOystein Eftevaag TSS2_RC
44*758e9fbaSOystein Eftevaag ifapi_json_TPM2_CC_serialize(const TPM2_CC in, json_object **jso);
45*758e9fbaSOystein Eftevaag 
46*758e9fbaSOystein Eftevaag TSS2_RC
47*758e9fbaSOystein Eftevaag ifapi_json_TPM2_EO_serialize(const TPM2_EO in, json_object **jso);
48*758e9fbaSOystein Eftevaag 
49*758e9fbaSOystein Eftevaag TSS2_RC
50*758e9fbaSOystein Eftevaag ifapi_json_TPM2_ST_serialize(const TPM2_ST in, json_object **jso);
51*758e9fbaSOystein Eftevaag 
52*758e9fbaSOystein Eftevaag TSS2_RC
53*758e9fbaSOystein Eftevaag ifapi_json_TPM2_CAP_serialize(const TPM2_CAP in, json_object **jso);
54*758e9fbaSOystein Eftevaag 
55*758e9fbaSOystein Eftevaag TSS2_RC
56*758e9fbaSOystein Eftevaag ifapi_json_TPM2_PT_serialize(const TPM2_PT in, json_object **jso);
57*758e9fbaSOystein Eftevaag 
58*758e9fbaSOystein Eftevaag TSS2_RC
59*758e9fbaSOystein Eftevaag ifapi_json_TPM2_PT_PCR_serialize(const TPM2_PT_PCR in, json_object **jso);
60*758e9fbaSOystein Eftevaag 
61*758e9fbaSOystein Eftevaag TSS2_RC
62*758e9fbaSOystein Eftevaag ifapi_json_TPMA_ALGORITHM_serialize(const TPMA_ALGORITHM in, json_object **jso);
63*758e9fbaSOystein Eftevaag 
64*758e9fbaSOystein Eftevaag TSS2_RC
65*758e9fbaSOystein Eftevaag ifapi_json_TPMA_OBJECT_serialize(const TPMA_OBJECT in, json_object **jso);
66*758e9fbaSOystein Eftevaag 
67*758e9fbaSOystein Eftevaag TSS2_RC
68*758e9fbaSOystein Eftevaag ifapi_json_TPMA_LOCALITY_serialize(const TPMA_LOCALITY in, json_object **jso);
69*758e9fbaSOystein Eftevaag 
70*758e9fbaSOystein Eftevaag TSS2_RC
71*758e9fbaSOystein Eftevaag ifapi_json_TPMA_CC_serialize(const TPMA_CC in, json_object **jso);
72*758e9fbaSOystein Eftevaag 
73*758e9fbaSOystein Eftevaag TSS2_RC
74*758e9fbaSOystein Eftevaag ifapi_json_TPMI_YES_NO_serialize(const TPMI_YES_NO in, json_object **jso);
75*758e9fbaSOystein Eftevaag 
76*758e9fbaSOystein Eftevaag TSS2_RC
77*758e9fbaSOystein Eftevaag ifapi_json_TPMI_RH_HIERARCHY_serialize(const TPMI_RH_HIERARCHY in,
78*758e9fbaSOystein Eftevaag                                        json_object **jso);
79*758e9fbaSOystein Eftevaag 
80*758e9fbaSOystein Eftevaag TSS2_RC
81*758e9fbaSOystein Eftevaag ifapi_json_TPMI_RH_NV_INDEX_serialize(const TPMI_RH_NV_INDEX in,
82*758e9fbaSOystein Eftevaag                                       json_object **jso);
83*758e9fbaSOystein Eftevaag 
84*758e9fbaSOystein Eftevaag TSS2_RC
85*758e9fbaSOystein Eftevaag ifapi_json_TPMI_ALG_HASH_serialize(const TPMI_ALG_HASH in, json_object **jso);
86*758e9fbaSOystein Eftevaag 
87*758e9fbaSOystein Eftevaag TSS2_RC
88*758e9fbaSOystein Eftevaag ifapi_json_TPMI_ALG_SYM_OBJECT_serialize(const TPMI_ALG_SYM_OBJECT in,
89*758e9fbaSOystein Eftevaag         json_object **jso);
90*758e9fbaSOystein Eftevaag 
91*758e9fbaSOystein Eftevaag TSS2_RC
92*758e9fbaSOystein Eftevaag ifapi_json_TPMI_ALG_SYM_MODE_serialize(const TPMI_ALG_SYM_MODE in,
93*758e9fbaSOystein Eftevaag                                        json_object **jso);
94*758e9fbaSOystein Eftevaag 
95*758e9fbaSOystein Eftevaag TSS2_RC
96*758e9fbaSOystein Eftevaag ifapi_json_TPMI_ALG_KDF_serialize(const TPMI_ALG_KDF in, json_object **jso);
97*758e9fbaSOystein Eftevaag 
98*758e9fbaSOystein Eftevaag TSS2_RC
99*758e9fbaSOystein Eftevaag ifapi_json_TPMI_ALG_SIG_SCHEME_serialize(const TPMI_ALG_SIG_SCHEME in,
100*758e9fbaSOystein Eftevaag         json_object **jso);
101*758e9fbaSOystein Eftevaag 
102*758e9fbaSOystein Eftevaag TSS2_RC
103*758e9fbaSOystein Eftevaag ifapi_json_TPMS_EMPTY_serialize(const TPMS_EMPTY *in, json_object **jso);
104*758e9fbaSOystein Eftevaag 
105*758e9fbaSOystein Eftevaag TSS2_RC
106*758e9fbaSOystein Eftevaag ifapi_json_TPMU_HA_serialize(const TPMU_HA *in, UINT32 selector,
107*758e9fbaSOystein Eftevaag                              json_object **jso);
108*758e9fbaSOystein Eftevaag 
109*758e9fbaSOystein Eftevaag TSS2_RC
110*758e9fbaSOystein Eftevaag ifapi_json_TPMT_HA_serialize(const TPMT_HA *in, json_object **jso);
111*758e9fbaSOystein Eftevaag 
112*758e9fbaSOystein Eftevaag TSS2_RC
113*758e9fbaSOystein Eftevaag ifapi_json_TPM2B_DIGEST_serialize(const TPM2B_DIGEST *in, json_object **jso);
114*758e9fbaSOystein Eftevaag 
115*758e9fbaSOystein Eftevaag TSS2_RC
116*758e9fbaSOystein Eftevaag ifapi_json_TPM2B_DATA_serialize(const TPM2B_DATA *in, json_object **jso);
117*758e9fbaSOystein Eftevaag 
118*758e9fbaSOystein Eftevaag TSS2_RC
119*758e9fbaSOystein Eftevaag ifapi_json_TPM2B_NONCE_serialize(const TPM2B_NONCE *in, json_object **jso);
120*758e9fbaSOystein Eftevaag 
121*758e9fbaSOystein Eftevaag TSS2_RC
122*758e9fbaSOystein Eftevaag ifapi_json_TPM2B_OPERAND_serialize(const TPM2B_OPERAND *in, json_object **jso);
123*758e9fbaSOystein Eftevaag 
124*758e9fbaSOystein Eftevaag TSS2_RC
125*758e9fbaSOystein Eftevaag ifapi_json_TPM2B_EVENT_serialize(const TPM2B_EVENT *in, json_object **jso);
126*758e9fbaSOystein Eftevaag 
127*758e9fbaSOystein Eftevaag TSS2_RC
128*758e9fbaSOystein Eftevaag ifapi_json_TPM2B_MAX_NV_BUFFER_serialize(const TPM2B_MAX_NV_BUFFER *in,
129*758e9fbaSOystein Eftevaag         json_object **jso);
130*758e9fbaSOystein Eftevaag 
131*758e9fbaSOystein Eftevaag TSS2_RC
132*758e9fbaSOystein Eftevaag ifapi_json_TPM2B_NAME_serialize(const TPM2B_NAME *in, json_object **jso);
133*758e9fbaSOystein Eftevaag 
134*758e9fbaSOystein Eftevaag TSS2_RC
135*758e9fbaSOystein Eftevaag ifapi_json_TPMS_PCR_SELECT_serialize(const TPMS_PCR_SELECT *in,
136*758e9fbaSOystein Eftevaag                                      json_object **jso);
137*758e9fbaSOystein Eftevaag 
138*758e9fbaSOystein Eftevaag TSS2_RC
139*758e9fbaSOystein Eftevaag ifapi_json_TPMS_PCR_SELECTION_serialize(const TPMS_PCR_SELECTION *in,
140*758e9fbaSOystein Eftevaag                                         json_object **jso);
141*758e9fbaSOystein Eftevaag 
142*758e9fbaSOystein Eftevaag TSS2_RC
143*758e9fbaSOystein Eftevaag ifapi_json_TPMT_TK_CREATION_serialize(const TPMT_TK_CREATION *in,
144*758e9fbaSOystein Eftevaag                                       json_object **jso);
145*758e9fbaSOystein Eftevaag 
146*758e9fbaSOystein Eftevaag TSS2_RC
147*758e9fbaSOystein Eftevaag ifapi_json_TPMS_ALG_PROPERTY_serialize(const TPMS_ALG_PROPERTY *in,
148*758e9fbaSOystein Eftevaag                                        json_object **jso);
149*758e9fbaSOystein Eftevaag 
150*758e9fbaSOystein Eftevaag TSS2_RC
151*758e9fbaSOystein Eftevaag ifapi_json_TPMS_TAGGED_PROPERTY_serialize(const TPMS_TAGGED_PROPERTY *in,
152*758e9fbaSOystein Eftevaag         json_object **jso);
153*758e9fbaSOystein Eftevaag 
154*758e9fbaSOystein Eftevaag TSS2_RC
155*758e9fbaSOystein Eftevaag ifapi_json_TPMS_TAGGED_PCR_SELECT_serialize(const TPMS_TAGGED_PCR_SELECT *in,
156*758e9fbaSOystein Eftevaag         json_object **jso);
157*758e9fbaSOystein Eftevaag 
158*758e9fbaSOystein Eftevaag TSS2_RC
159*758e9fbaSOystein Eftevaag ifapi_json_TPML_CC_serialize(const TPML_CC *in, json_object **jso);
160*758e9fbaSOystein Eftevaag 
161*758e9fbaSOystein Eftevaag TSS2_RC
162*758e9fbaSOystein Eftevaag ifapi_json_TPML_CCA_serialize(const TPML_CCA *in, json_object **jso);
163*758e9fbaSOystein Eftevaag 
164*758e9fbaSOystein Eftevaag TSS2_RC
165*758e9fbaSOystein Eftevaag ifapi_json_TPML_HANDLE_serialize(const TPML_HANDLE *in, json_object **jso);
166*758e9fbaSOystein Eftevaag 
167*758e9fbaSOystein Eftevaag TSS2_RC
168*758e9fbaSOystein Eftevaag ifapi_json_TPML_DIGEST_VALUES_serialize(const TPML_DIGEST_VALUES *in,
169*758e9fbaSOystein Eftevaag                                         json_object **jso);
170*758e9fbaSOystein Eftevaag 
171*758e9fbaSOystein Eftevaag TSS2_RC
172*758e9fbaSOystein Eftevaag ifapi_json_TPML_PCR_SELECTION_serialize(const TPML_PCR_SELECTION *in,
173*758e9fbaSOystein Eftevaag                                         json_object **jso);
174*758e9fbaSOystein Eftevaag 
175*758e9fbaSOystein Eftevaag TSS2_RC
176*758e9fbaSOystein Eftevaag ifapi_json_TPML_ALG_PROPERTY_serialize(const TPML_ALG_PROPERTY *in,
177*758e9fbaSOystein Eftevaag                                        json_object **jso);
178*758e9fbaSOystein Eftevaag 
179*758e9fbaSOystein Eftevaag TSS2_RC
180*758e9fbaSOystein Eftevaag ifapi_json_TPML_TAGGED_TPM_PROPERTY_serialize(const TPML_TAGGED_TPM_PROPERTY
181*758e9fbaSOystein Eftevaag         *in, json_object **jso);
182*758e9fbaSOystein Eftevaag 
183*758e9fbaSOystein Eftevaag TSS2_RC
184*758e9fbaSOystein Eftevaag ifapi_json_TPML_TAGGED_PCR_PROPERTY_serialize(const TPML_TAGGED_PCR_PROPERTY
185*758e9fbaSOystein Eftevaag         *in, json_object **jso);
186*758e9fbaSOystein Eftevaag 
187*758e9fbaSOystein Eftevaag TSS2_RC
188*758e9fbaSOystein Eftevaag ifapi_json_TPML_ECC_CURVE_serialize(const TPML_ECC_CURVE *in,
189*758e9fbaSOystein Eftevaag                                     json_object **jso);
190*758e9fbaSOystein Eftevaag 
191*758e9fbaSOystein Eftevaag TSS2_RC
192*758e9fbaSOystein Eftevaag ifapi_json_TPMU_CAPABILITIES_serialize(const TPMU_CAPABILITIES *in,
193*758e9fbaSOystein Eftevaag                                        UINT32 selector, json_object **jso);
194*758e9fbaSOystein Eftevaag 
195*758e9fbaSOystein Eftevaag TSS2_RC
196*758e9fbaSOystein Eftevaag ifapi_json_TPMS_CAPABILITY_DATA_serialize(const TPMS_CAPABILITY_DATA *in,
197*758e9fbaSOystein Eftevaag         json_object **jso);
198*758e9fbaSOystein Eftevaag 
199*758e9fbaSOystein Eftevaag TSS2_RC
200*758e9fbaSOystein Eftevaag ifapi_json_TPMS_CLOCK_INFO_serialize(const TPMS_CLOCK_INFO *in,
201*758e9fbaSOystein Eftevaag                                      json_object **jso);
202*758e9fbaSOystein Eftevaag 
203*758e9fbaSOystein Eftevaag TSS2_RC
204*758e9fbaSOystein Eftevaag ifapi_json_TPMS_TIME_INFO_serialize(const TPMS_TIME_INFO *in,
205*758e9fbaSOystein Eftevaag                                     json_object **jso);
206*758e9fbaSOystein Eftevaag 
207*758e9fbaSOystein Eftevaag TSS2_RC
208*758e9fbaSOystein Eftevaag ifapi_json_TPMS_TIME_ATTEST_INFO_serialize(const TPMS_TIME_ATTEST_INFO *in,
209*758e9fbaSOystein Eftevaag         json_object **jso);
210*758e9fbaSOystein Eftevaag 
211*758e9fbaSOystein Eftevaag TSS2_RC
212*758e9fbaSOystein Eftevaag ifapi_json_TPMS_CERTIFY_INFO_serialize(const TPMS_CERTIFY_INFO *in,
213*758e9fbaSOystein Eftevaag                                        json_object **jso);
214*758e9fbaSOystein Eftevaag 
215*758e9fbaSOystein Eftevaag TSS2_RC
216*758e9fbaSOystein Eftevaag ifapi_json_TPMS_QUOTE_INFO_serialize(const TPMS_QUOTE_INFO *in,
217*758e9fbaSOystein Eftevaag                                      json_object **jso);
218*758e9fbaSOystein Eftevaag 
219*758e9fbaSOystein Eftevaag TSS2_RC
220*758e9fbaSOystein Eftevaag ifapi_json_TPMS_COMMAND_AUDIT_INFO_serialize(const TPMS_COMMAND_AUDIT_INFO *in,
221*758e9fbaSOystein Eftevaag         json_object **jso);
222*758e9fbaSOystein Eftevaag 
223*758e9fbaSOystein Eftevaag TSS2_RC
224*758e9fbaSOystein Eftevaag ifapi_json_TPMS_SESSION_AUDIT_INFO_serialize(const TPMS_SESSION_AUDIT_INFO *in,
225*758e9fbaSOystein Eftevaag         json_object **jso);
226*758e9fbaSOystein Eftevaag 
227*758e9fbaSOystein Eftevaag TSS2_RC
228*758e9fbaSOystein Eftevaag ifapi_json_TPMS_CREATION_INFO_serialize(const TPMS_CREATION_INFO *in,
229*758e9fbaSOystein Eftevaag                                         json_object **jso);
230*758e9fbaSOystein Eftevaag 
231*758e9fbaSOystein Eftevaag TSS2_RC
232*758e9fbaSOystein Eftevaag ifapi_json_TPMS_NV_CERTIFY_INFO_serialize(const TPMS_NV_CERTIFY_INFO *in,
233*758e9fbaSOystein Eftevaag         json_object **jso);
234*758e9fbaSOystein Eftevaag 
235*758e9fbaSOystein Eftevaag TSS2_RC
236*758e9fbaSOystein Eftevaag ifapi_json_TPMI_ST_ATTEST_serialize(const TPMI_ST_ATTEST in, json_object **jso);
237*758e9fbaSOystein Eftevaag 
238*758e9fbaSOystein Eftevaag TSS2_RC
239*758e9fbaSOystein Eftevaag ifapi_json_TPMU_ATTEST_serialize(const TPMU_ATTEST *in, UINT32 selector,
240*758e9fbaSOystein Eftevaag                                  json_object **jso);
241*758e9fbaSOystein Eftevaag 
242*758e9fbaSOystein Eftevaag TSS2_RC
243*758e9fbaSOystein Eftevaag ifapi_json_TPMS_ATTEST_serialize(const TPMS_ATTEST *in, json_object **jso);
244*758e9fbaSOystein Eftevaag 
245*758e9fbaSOystein Eftevaag TSS2_RC
246*758e9fbaSOystein Eftevaag ifapi_json_TPMI_AES_KEY_BITS_serialize(const TPMI_AES_KEY_BITS in,
247*758e9fbaSOystein Eftevaag                                        json_object **jso);
248*758e9fbaSOystein Eftevaag 
249*758e9fbaSOystein Eftevaag TSS2_RC
250*758e9fbaSOystein Eftevaag ifapi_json_TPMU_SYM_KEY_BITS_serialize(const TPMU_SYM_KEY_BITS *in,
251*758e9fbaSOystein Eftevaag                                        UINT32 selector, json_object **jso);
252*758e9fbaSOystein Eftevaag 
253*758e9fbaSOystein Eftevaag TSS2_RC
254*758e9fbaSOystein Eftevaag ifapi_json_TPMU_SYM_MODE_serialize(const TPMU_SYM_MODE *in, UINT32 selector,
255*758e9fbaSOystein Eftevaag                                    json_object **jso);
256*758e9fbaSOystein Eftevaag 
257*758e9fbaSOystein Eftevaag TSS2_RC
258*758e9fbaSOystein Eftevaag ifapi_json_TPMT_SYM_DEF_OBJECT_serialize(const TPMT_SYM_DEF_OBJECT *in,
259*758e9fbaSOystein Eftevaag         json_object **jso);
260*758e9fbaSOystein Eftevaag 
261*758e9fbaSOystein Eftevaag TSS2_RC
262*758e9fbaSOystein Eftevaag ifapi_json_TPMS_SYMCIPHER_PARMS_serialize(const TPMS_SYMCIPHER_PARMS *in,
263*758e9fbaSOystein Eftevaag         json_object **jso);
264*758e9fbaSOystein Eftevaag 
265*758e9fbaSOystein Eftevaag TSS2_RC
266*758e9fbaSOystein Eftevaag ifapi_json_TPMS_SCHEME_HASH_serialize(const TPMS_SCHEME_HASH *in,
267*758e9fbaSOystein Eftevaag                                       json_object **jso);
268*758e9fbaSOystein Eftevaag 
269*758e9fbaSOystein Eftevaag TSS2_RC
270*758e9fbaSOystein Eftevaag ifapi_json_TPMS_SCHEME_ECDAA_serialize(const TPMS_SCHEME_ECDAA *in,
271*758e9fbaSOystein Eftevaag                                        json_object **jso);
272*758e9fbaSOystein Eftevaag 
273*758e9fbaSOystein Eftevaag TSS2_RC
274*758e9fbaSOystein Eftevaag ifapi_json_TPMI_ALG_KEYEDHASH_SCHEME_serialize(const TPMI_ALG_KEYEDHASH_SCHEME
275*758e9fbaSOystein Eftevaag         in, json_object **jso);
276*758e9fbaSOystein Eftevaag 
277*758e9fbaSOystein Eftevaag TSS2_RC
278*758e9fbaSOystein Eftevaag ifapi_json_TPMS_SCHEME_HMAC_serialize(const TPMS_SCHEME_HMAC *in,
279*758e9fbaSOystein Eftevaag                                       json_object **jso);
280*758e9fbaSOystein Eftevaag 
281*758e9fbaSOystein Eftevaag TSS2_RC
282*758e9fbaSOystein Eftevaag ifapi_json_TPMS_SCHEME_XOR_serialize(const TPMS_SCHEME_XOR *in,
283*758e9fbaSOystein Eftevaag                                      json_object **jso);
284*758e9fbaSOystein Eftevaag 
285*758e9fbaSOystein Eftevaag TSS2_RC
286*758e9fbaSOystein Eftevaag ifapi_json_TPMU_SCHEME_KEYEDHASH_serialize(const TPMU_SCHEME_KEYEDHASH *in,
287*758e9fbaSOystein Eftevaag         UINT32 selector, json_object **jso);
288*758e9fbaSOystein Eftevaag 
289*758e9fbaSOystein Eftevaag TSS2_RC
290*758e9fbaSOystein Eftevaag ifapi_json_TPMT_KEYEDHASH_SCHEME_serialize(const TPMT_KEYEDHASH_SCHEME *in,
291*758e9fbaSOystein Eftevaag         json_object **jso);
292*758e9fbaSOystein Eftevaag 
293*758e9fbaSOystein Eftevaag TSS2_RC
294*758e9fbaSOystein Eftevaag ifapi_json_TPMS_SIG_SCHEME_RSASSA_serialize(const TPMS_SIG_SCHEME_RSASSA *in,
295*758e9fbaSOystein Eftevaag         json_object **jso);
296*758e9fbaSOystein Eftevaag 
297*758e9fbaSOystein Eftevaag TSS2_RC
298*758e9fbaSOystein Eftevaag ifapi_json_TPMS_SIG_SCHEME_RSAPSS_serialize(const TPMS_SIG_SCHEME_RSAPSS *in,
299*758e9fbaSOystein Eftevaag         json_object **jso);
300*758e9fbaSOystein Eftevaag 
301*758e9fbaSOystein Eftevaag TSS2_RC
302*758e9fbaSOystein Eftevaag ifapi_json_TPMS_SIG_SCHEME_ECDSA_serialize(const TPMS_SIG_SCHEME_ECDSA *in,
303*758e9fbaSOystein Eftevaag         json_object **jso);
304*758e9fbaSOystein Eftevaag 
305*758e9fbaSOystein Eftevaag TSS2_RC
306*758e9fbaSOystein Eftevaag ifapi_json_TPMS_SIG_SCHEME_SM2_serialize(const TPMS_SIG_SCHEME_SM2 *in,
307*758e9fbaSOystein Eftevaag         json_object **jso);
308*758e9fbaSOystein Eftevaag 
309*758e9fbaSOystein Eftevaag TSS2_RC
310*758e9fbaSOystein Eftevaag ifapi_json_TPMS_SIG_SCHEME_ECSCHNORR_serialize(const TPMS_SIG_SCHEME_ECSCHNORR
311*758e9fbaSOystein Eftevaag         *in, json_object **jso);
312*758e9fbaSOystein Eftevaag 
313*758e9fbaSOystein Eftevaag TSS2_RC
314*758e9fbaSOystein Eftevaag ifapi_json_TPMS_SIG_SCHEME_ECDAA_serialize(const TPMS_SIG_SCHEME_ECDAA *in,
315*758e9fbaSOystein Eftevaag         json_object **jso);
316*758e9fbaSOystein Eftevaag 
317*758e9fbaSOystein Eftevaag TSS2_RC
318*758e9fbaSOystein Eftevaag ifapi_json_TPMU_SIG_SCHEME_serialize(const TPMU_SIG_SCHEME *in, UINT32 selector,
319*758e9fbaSOystein Eftevaag                                      json_object **jso);
320*758e9fbaSOystein Eftevaag 
321*758e9fbaSOystein Eftevaag TSS2_RC
322*758e9fbaSOystein Eftevaag ifapi_json_TPMT_SIG_SCHEME_serialize(const TPMT_SIG_SCHEME *in,
323*758e9fbaSOystein Eftevaag                                      json_object **jso);
324*758e9fbaSOystein Eftevaag 
325*758e9fbaSOystein Eftevaag TSS2_RC
326*758e9fbaSOystein Eftevaag ifapi_json_TPMS_ENC_SCHEME_OAEP_serialize(const TPMS_ENC_SCHEME_OAEP *in,
327*758e9fbaSOystein Eftevaag         json_object **jso);
328*758e9fbaSOystein Eftevaag 
329*758e9fbaSOystein Eftevaag TSS2_RC
330*758e9fbaSOystein Eftevaag ifapi_json_TPMS_ENC_SCHEME_RSAES_serialize(const TPMS_ENC_SCHEME_RSAES *in,
331*758e9fbaSOystein Eftevaag         json_object **jso);
332*758e9fbaSOystein Eftevaag 
333*758e9fbaSOystein Eftevaag TSS2_RC
334*758e9fbaSOystein Eftevaag ifapi_json_TPMS_KEY_SCHEME_ECDH_serialize(const TPMS_KEY_SCHEME_ECDH *in,
335*758e9fbaSOystein Eftevaag         json_object **jso);
336*758e9fbaSOystein Eftevaag 
337*758e9fbaSOystein Eftevaag TSS2_RC
338*758e9fbaSOystein Eftevaag ifapi_json_TPMS_SCHEME_MGF1_serialize(const TPMS_SCHEME_MGF1 *in,
339*758e9fbaSOystein Eftevaag                                       json_object **jso);
340*758e9fbaSOystein Eftevaag 
341*758e9fbaSOystein Eftevaag TSS2_RC
342*758e9fbaSOystein Eftevaag ifapi_json_TPMS_SCHEME_KDF1_SP800_56A_serialize(const TPMS_SCHEME_KDF1_SP800_56A
343*758e9fbaSOystein Eftevaag         *in, json_object **jso);
344*758e9fbaSOystein Eftevaag 
345*758e9fbaSOystein Eftevaag TSS2_RC
346*758e9fbaSOystein Eftevaag ifapi_json_TPMS_SCHEME_KDF1_SP800_108_serialize(const TPMS_SCHEME_KDF1_SP800_108
347*758e9fbaSOystein Eftevaag         *in, json_object **jso);
348*758e9fbaSOystein Eftevaag 
349*758e9fbaSOystein Eftevaag TSS2_RC
350*758e9fbaSOystein Eftevaag ifapi_json_TPMU_KDF_SCHEME_serialize(const TPMU_KDF_SCHEME *in, UINT32 selector,
351*758e9fbaSOystein Eftevaag                                      json_object **jso);
352*758e9fbaSOystein Eftevaag 
353*758e9fbaSOystein Eftevaag TSS2_RC
354*758e9fbaSOystein Eftevaag ifapi_json_TPMT_KDF_SCHEME_serialize(const TPMT_KDF_SCHEME *in,
355*758e9fbaSOystein Eftevaag                                      json_object **jso);
356*758e9fbaSOystein Eftevaag 
357*758e9fbaSOystein Eftevaag TSS2_RC
358*758e9fbaSOystein Eftevaag ifapi_json_TPMI_ALG_ASYM_SCHEME_serialize(const TPMI_ALG_ASYM_SCHEME in,
359*758e9fbaSOystein Eftevaag         json_object **jso);
360*758e9fbaSOystein Eftevaag 
361*758e9fbaSOystein Eftevaag TSS2_RC
362*758e9fbaSOystein Eftevaag ifapi_json_TPMU_ASYM_SCHEME_serialize(const TPMU_ASYM_SCHEME *in,
363*758e9fbaSOystein Eftevaag                                       UINT32 selector, json_object **jso);
364*758e9fbaSOystein Eftevaag 
365*758e9fbaSOystein Eftevaag TSS2_RC
366*758e9fbaSOystein Eftevaag ifapi_json_TPMT_ASYM_SCHEME_serialize(const TPMT_ASYM_SCHEME *in,
367*758e9fbaSOystein Eftevaag                                       json_object **jso);
368*758e9fbaSOystein Eftevaag 
369*758e9fbaSOystein Eftevaag TSS2_RC
370*758e9fbaSOystein Eftevaag ifapi_json_TPMI_ALG_RSA_SCHEME_serialize(const TPMI_ALG_RSA_SCHEME in,
371*758e9fbaSOystein Eftevaag         json_object **jso);
372*758e9fbaSOystein Eftevaag 
373*758e9fbaSOystein Eftevaag TSS2_RC
374*758e9fbaSOystein Eftevaag ifapi_json_TPMT_RSA_SCHEME_serialize(const TPMT_RSA_SCHEME *in,
375*758e9fbaSOystein Eftevaag                                      json_object **jso);
376*758e9fbaSOystein Eftevaag 
377*758e9fbaSOystein Eftevaag TSS2_RC
378*758e9fbaSOystein Eftevaag ifapi_json_TPM2B_PUBLIC_KEY_RSA_serialize(const TPM2B_PUBLIC_KEY_RSA *in,
379*758e9fbaSOystein Eftevaag         json_object **jso);
380*758e9fbaSOystein Eftevaag 
381*758e9fbaSOystein Eftevaag TSS2_RC
382*758e9fbaSOystein Eftevaag ifapi_json_TPMI_RSA_KEY_BITS_serialize(const TPMI_RSA_KEY_BITS in,
383*758e9fbaSOystein Eftevaag                                        json_object **jso);
384*758e9fbaSOystein Eftevaag 
385*758e9fbaSOystein Eftevaag TSS2_RC
386*758e9fbaSOystein Eftevaag ifapi_json_TPM2B_ECC_PARAMETER_serialize(const TPM2B_ECC_PARAMETER *in,
387*758e9fbaSOystein Eftevaag         json_object **jso);
388*758e9fbaSOystein Eftevaag 
389*758e9fbaSOystein Eftevaag TSS2_RC
390*758e9fbaSOystein Eftevaag ifapi_json_TPMS_ECC_POINT_serialize(const TPMS_ECC_POINT *in,
391*758e9fbaSOystein Eftevaag                                     json_object **jso);
392*758e9fbaSOystein Eftevaag 
393*758e9fbaSOystein Eftevaag TSS2_RC
394*758e9fbaSOystein Eftevaag ifapi_json_TPMI_ALG_ECC_SCHEME_serialize(const TPMI_ALG_ECC_SCHEME in,
395*758e9fbaSOystein Eftevaag         json_object **jso);
396*758e9fbaSOystein Eftevaag 
397*758e9fbaSOystein Eftevaag TSS2_RC
398*758e9fbaSOystein Eftevaag ifapi_json_TPMI_ECC_CURVE_serialize(const TPMI_ECC_CURVE in, json_object **jso);
399*758e9fbaSOystein Eftevaag 
400*758e9fbaSOystein Eftevaag TSS2_RC
401*758e9fbaSOystein Eftevaag ifapi_json_TPMT_ECC_SCHEME_serialize(const TPMT_ECC_SCHEME *in,
402*758e9fbaSOystein Eftevaag                                      json_object **jso);
403*758e9fbaSOystein Eftevaag 
404*758e9fbaSOystein Eftevaag TSS2_RC
405*758e9fbaSOystein Eftevaag ifapi_json_TPMS_SIGNATURE_RSA_serialize(const TPMS_SIGNATURE_RSA *in,
406*758e9fbaSOystein Eftevaag                                         json_object **jso);
407*758e9fbaSOystein Eftevaag 
408*758e9fbaSOystein Eftevaag TSS2_RC
409*758e9fbaSOystein Eftevaag ifapi_json_TPMS_SIGNATURE_RSASSA_serialize(const TPMS_SIGNATURE_RSASSA *in,
410*758e9fbaSOystein Eftevaag         json_object **jso);
411*758e9fbaSOystein Eftevaag 
412*758e9fbaSOystein Eftevaag TSS2_RC
413*758e9fbaSOystein Eftevaag ifapi_json_TPMS_SIGNATURE_RSAPSS_serialize(const TPMS_SIGNATURE_RSAPSS *in,
414*758e9fbaSOystein Eftevaag         json_object **jso);
415*758e9fbaSOystein Eftevaag 
416*758e9fbaSOystein Eftevaag TSS2_RC
417*758e9fbaSOystein Eftevaag ifapi_json_TPMS_SIGNATURE_ECC_serialize(const TPMS_SIGNATURE_ECC *in,
418*758e9fbaSOystein Eftevaag                                         json_object **jso);
419*758e9fbaSOystein Eftevaag 
420*758e9fbaSOystein Eftevaag TSS2_RC
421*758e9fbaSOystein Eftevaag ifapi_json_TPMS_SIGNATURE_ECDSA_serialize(const TPMS_SIGNATURE_ECDSA *in,
422*758e9fbaSOystein Eftevaag         json_object **jso);
423*758e9fbaSOystein Eftevaag 
424*758e9fbaSOystein Eftevaag TSS2_RC
425*758e9fbaSOystein Eftevaag ifapi_json_TPMS_SIGNATURE_ECDAA_serialize(const TPMS_SIGNATURE_ECDAA *in,
426*758e9fbaSOystein Eftevaag         json_object **jso);
427*758e9fbaSOystein Eftevaag 
428*758e9fbaSOystein Eftevaag TSS2_RC
429*758e9fbaSOystein Eftevaag ifapi_json_TPMS_SIGNATURE_SM2_serialize(const TPMS_SIGNATURE_SM2 *in,
430*758e9fbaSOystein Eftevaag                                         json_object **jso);
431*758e9fbaSOystein Eftevaag 
432*758e9fbaSOystein Eftevaag TSS2_RC
433*758e9fbaSOystein Eftevaag ifapi_json_TPMS_SIGNATURE_ECSCHNORR_serialize(const TPMS_SIGNATURE_ECSCHNORR
434*758e9fbaSOystein Eftevaag         *in, json_object **jso);
435*758e9fbaSOystein Eftevaag 
436*758e9fbaSOystein Eftevaag TSS2_RC
437*758e9fbaSOystein Eftevaag ifapi_json_TPMU_SIGNATURE_serialize(const TPMU_SIGNATURE *in, UINT32 selector,
438*758e9fbaSOystein Eftevaag                                     json_object **jso);
439*758e9fbaSOystein Eftevaag 
440*758e9fbaSOystein Eftevaag TSS2_RC
441*758e9fbaSOystein Eftevaag ifapi_json_TPMT_SIGNATURE_serialize(const TPMT_SIGNATURE *in,
442*758e9fbaSOystein Eftevaag                                     json_object **jso);
443*758e9fbaSOystein Eftevaag 
444*758e9fbaSOystein Eftevaag TSS2_RC
445*758e9fbaSOystein Eftevaag ifapi_json_TPM2B_ENCRYPTED_SECRET_serialize(const TPM2B_ENCRYPTED_SECRET *in,
446*758e9fbaSOystein Eftevaag         json_object **jso);
447*758e9fbaSOystein Eftevaag 
448*758e9fbaSOystein Eftevaag TSS2_RC
449*758e9fbaSOystein Eftevaag ifapi_json_TPMI_ALG_PUBLIC_serialize(const TPMI_ALG_PUBLIC in,
450*758e9fbaSOystein Eftevaag                                      json_object **jso);
451*758e9fbaSOystein Eftevaag 
452*758e9fbaSOystein Eftevaag TSS2_RC
453*758e9fbaSOystein Eftevaag ifapi_json_TPMU_PUBLIC_ID_serialize(const TPMU_PUBLIC_ID *in, UINT32 selector,
454*758e9fbaSOystein Eftevaag                                     json_object **jso);
455*758e9fbaSOystein Eftevaag 
456*758e9fbaSOystein Eftevaag TSS2_RC
457*758e9fbaSOystein Eftevaag ifapi_json_TPMS_KEYEDHASH_PARMS_serialize(const TPMS_KEYEDHASH_PARMS *in,
458*758e9fbaSOystein Eftevaag         json_object **jso);
459*758e9fbaSOystein Eftevaag 
460*758e9fbaSOystein Eftevaag TSS2_RC
461*758e9fbaSOystein Eftevaag ifapi_json_TPMS_ASYM_PARMS_serialize(const TPMS_ASYM_PARMS *in,
462*758e9fbaSOystein Eftevaag                                      json_object **jso);
463*758e9fbaSOystein Eftevaag 
464*758e9fbaSOystein Eftevaag TSS2_RC
465*758e9fbaSOystein Eftevaag ifapi_json_TPMS_RSA_PARMS_serialize(const TPMS_RSA_PARMS *in,
466*758e9fbaSOystein Eftevaag                                     json_object **jso);
467*758e9fbaSOystein Eftevaag 
468*758e9fbaSOystein Eftevaag TSS2_RC
469*758e9fbaSOystein Eftevaag ifapi_json_TPMS_ECC_PARMS_serialize(const TPMS_ECC_PARMS *in,
470*758e9fbaSOystein Eftevaag                                     json_object **jso);
471*758e9fbaSOystein Eftevaag 
472*758e9fbaSOystein Eftevaag TSS2_RC
473*758e9fbaSOystein Eftevaag ifapi_json_TPMU_PUBLIC_PARMS_serialize(const TPMU_PUBLIC_PARMS *in,
474*758e9fbaSOystein Eftevaag                                        UINT32 selector, json_object **jso);
475*758e9fbaSOystein Eftevaag 
476*758e9fbaSOystein Eftevaag TSS2_RC
477*758e9fbaSOystein Eftevaag ifapi_json_TPMT_PUBLIC_serialize(const TPMT_PUBLIC *in, json_object **jso);
478*758e9fbaSOystein Eftevaag 
479*758e9fbaSOystein Eftevaag TSS2_RC
480*758e9fbaSOystein Eftevaag ifapi_json_TPM2B_PUBLIC_serialize(const TPM2B_PUBLIC *in, json_object **jso);
481*758e9fbaSOystein Eftevaag 
482*758e9fbaSOystein Eftevaag TSS2_RC
483*758e9fbaSOystein Eftevaag ifapi_json_TPM2B_PRIVATE_serialize(const TPM2B_PRIVATE *in, json_object **jso);
484*758e9fbaSOystein Eftevaag 
485*758e9fbaSOystein Eftevaag TSS2_RC
486*758e9fbaSOystein Eftevaag ifapi_json_TPM2_NT_serialize(const TPM2_NT in, json_object **jso);
487*758e9fbaSOystein Eftevaag 
488*758e9fbaSOystein Eftevaag TSS2_RC
489*758e9fbaSOystein Eftevaag ifapi_json_TPMA_NV_serialize(const TPMA_NV in, json_object **jso);
490*758e9fbaSOystein Eftevaag 
491*758e9fbaSOystein Eftevaag TSS2_RC
492*758e9fbaSOystein Eftevaag ifapi_json_TPMS_NV_PUBLIC_serialize(const TPMS_NV_PUBLIC *in,
493*758e9fbaSOystein Eftevaag                                     json_object **jso);
494*758e9fbaSOystein Eftevaag 
495*758e9fbaSOystein Eftevaag TSS2_RC
496*758e9fbaSOystein Eftevaag ifapi_json_TPM2B_NV_PUBLIC_serialize(const TPM2B_NV_PUBLIC *in,
497*758e9fbaSOystein Eftevaag                                      json_object **jso);
498*758e9fbaSOystein Eftevaag 
499*758e9fbaSOystein Eftevaag TSS2_RC
500*758e9fbaSOystein Eftevaag ifapi_json_TPMS_CREATION_DATA_serialize(const TPMS_CREATION_DATA *in,
501*758e9fbaSOystein Eftevaag                                         json_object **jso);
502*758e9fbaSOystein Eftevaag 
503*758e9fbaSOystein Eftevaag TSS2_RC
504*758e9fbaSOystein Eftevaag ifapi_json_TPM2B_CREATION_DATA_serialize(const TPM2B_CREATION_DATA *in,
505*758e9fbaSOystein Eftevaag         json_object **jso);
506*758e9fbaSOystein Eftevaag 
507*758e9fbaSOystein Eftevaag #endif /* FAPI_TPM_JSON_SERIALIZE_H */
508