xref: /aosp_15_r20/external/tpm2-tss/src/tss2-fapi/tpm_json_deserialize.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_DESERIALIZE_H
7*758e9fbaSOystein Eftevaag #define FAPI_TPM_JSON_DESERIALIZE_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 #define YES 1
16*758e9fbaSOystein Eftevaag #define NO 0
17*758e9fbaSOystein Eftevaag 
18*758e9fbaSOystein Eftevaag TSS2_RC
19*758e9fbaSOystein Eftevaag ifapi_json_BYTE_array_deserialize(size_t max, json_object *jso, BYTE *out);
20*758e9fbaSOystein Eftevaag 
21*758e9fbaSOystein Eftevaag TSS2_RC
22*758e9fbaSOystein Eftevaag ifapi_json_UINT8_ARY_deserialize(json_object *jso, UINT8_ARY *out);
23*758e9fbaSOystein Eftevaag 
24*758e9fbaSOystein Eftevaag bool
25*758e9fbaSOystein Eftevaag ifapi_get_sub_object(json_object *jso, char *name, json_object **sub_jso);
26*758e9fbaSOystein Eftevaag 
27*758e9fbaSOystein Eftevaag TSS2_RC
28*758e9fbaSOystein Eftevaag ifapi_json_BYTE_deserialize(json_object *jso, BYTE *out);
29*758e9fbaSOystein Eftevaag 
30*758e9fbaSOystein Eftevaag TSS2_RC
31*758e9fbaSOystein Eftevaag ifapi_json_UINT16_deserialize(json_object *jso, UINT16 *out);
32*758e9fbaSOystein Eftevaag 
33*758e9fbaSOystein Eftevaag TSS2_RC
34*758e9fbaSOystein Eftevaag ifapi_json_UINT32_deserialize(json_object *jso, UINT32 *out);
35*758e9fbaSOystein Eftevaag 
36*758e9fbaSOystein Eftevaag TSS2_RC
37*758e9fbaSOystein Eftevaag ifapi_json_UINT64_deserialize(json_object *jso, UINT64 *out);
38*758e9fbaSOystein Eftevaag 
39*758e9fbaSOystein Eftevaag TSS2_RC
40*758e9fbaSOystein Eftevaag ifapi_json_TPM2_GENERATED_deserialize(json_object *jso, TPM2_GENERATED *out);
41*758e9fbaSOystein Eftevaag 
42*758e9fbaSOystein Eftevaag TSS2_RC
43*758e9fbaSOystein Eftevaag ifapi_json_TPM2_ALG_ID_deserialize(json_object *jso, TPM2_ALG_ID *out);
44*758e9fbaSOystein Eftevaag 
45*758e9fbaSOystein Eftevaag TSS2_RC
46*758e9fbaSOystein Eftevaag ifapi_json_TPM2_ECC_CURVE_deserialize(json_object *jso, TPM2_ECC_CURVE *out);
47*758e9fbaSOystein Eftevaag 
48*758e9fbaSOystein Eftevaag TSS2_RC
49*758e9fbaSOystein Eftevaag ifapi_json_TPM2_CC_deserialize(json_object *jso, TPM2_CC *out);
50*758e9fbaSOystein Eftevaag 
51*758e9fbaSOystein Eftevaag TSS2_RC
52*758e9fbaSOystein Eftevaag ifapi_json_TPM2_EO_deserialize(json_object *jso, TPM2_EO *out);
53*758e9fbaSOystein Eftevaag 
54*758e9fbaSOystein Eftevaag TSS2_RC
55*758e9fbaSOystein Eftevaag ifapi_json_TPM2_ST_deserialize(json_object *jso, TPM2_ST *out);
56*758e9fbaSOystein Eftevaag 
57*758e9fbaSOystein Eftevaag TSS2_RC
58*758e9fbaSOystein Eftevaag ifapi_json_TPM2_PT_PCR_deserialize(json_object *jso, TPM2_PT_PCR *out);
59*758e9fbaSOystein Eftevaag 
60*758e9fbaSOystein Eftevaag TSS2_RC
61*758e9fbaSOystein Eftevaag ifapi_json_TPM2_HANDLE_deserialize(json_object *jso, TPM2_HANDLE *out);
62*758e9fbaSOystein Eftevaag 
63*758e9fbaSOystein Eftevaag TSS2_RC
64*758e9fbaSOystein Eftevaag ifapi_json_TPMA_OBJECT_deserialize(json_object *jso, TPMA_OBJECT *out);
65*758e9fbaSOystein Eftevaag 
66*758e9fbaSOystein Eftevaag TSS2_RC
67*758e9fbaSOystein Eftevaag ifapi_json_TPMA_LOCALITY_deserialize(json_object *jso, TPMA_LOCALITY *out);
68*758e9fbaSOystein Eftevaag 
69*758e9fbaSOystein Eftevaag TSS2_RC
70*758e9fbaSOystein Eftevaag ifapi_json_TPMI_YES_NO_deserialize(json_object *jso, TPMI_YES_NO *out);
71*758e9fbaSOystein Eftevaag 
72*758e9fbaSOystein Eftevaag TSS2_RC
73*758e9fbaSOystein Eftevaag ifapi_json_TPMI_RH_HIERARCHY_deserialize(json_object *jso,
74*758e9fbaSOystein Eftevaag         TPMI_RH_HIERARCHY *out);
75*758e9fbaSOystein Eftevaag 
76*758e9fbaSOystein Eftevaag TSS2_RC
77*758e9fbaSOystein Eftevaag ifapi_json_TPMI_RH_NV_INDEX_deserialize(json_object *jso,
78*758e9fbaSOystein Eftevaag                                         TPMI_RH_NV_INDEX *out);
79*758e9fbaSOystein Eftevaag 
80*758e9fbaSOystein Eftevaag TSS2_RC
81*758e9fbaSOystein Eftevaag ifapi_json_TPMI_ALG_HASH_deserialize(json_object *jso, TPMI_ALG_HASH *out);
82*758e9fbaSOystein Eftevaag 
83*758e9fbaSOystein Eftevaag TSS2_RC
84*758e9fbaSOystein Eftevaag ifapi_json_TPMI_ALG_SYM_deserialize(json_object *jso, TPMI_ALG_SYM *out);
85*758e9fbaSOystein Eftevaag 
86*758e9fbaSOystein Eftevaag TSS2_RC
87*758e9fbaSOystein Eftevaag ifapi_json_TPMI_ALG_SYM_OBJECT_deserialize(json_object *jso,
88*758e9fbaSOystein Eftevaag         TPMI_ALG_SYM_OBJECT *out);
89*758e9fbaSOystein Eftevaag 
90*758e9fbaSOystein Eftevaag TSS2_RC
91*758e9fbaSOystein Eftevaag ifapi_json_TPMI_ALG_SYM_MODE_deserialize(json_object *jso,
92*758e9fbaSOystein Eftevaag         TPMI_ALG_SYM_MODE *out);
93*758e9fbaSOystein Eftevaag 
94*758e9fbaSOystein Eftevaag TSS2_RC
95*758e9fbaSOystein Eftevaag ifapi_json_TPMI_ALG_KDF_deserialize(json_object *jso, TPMI_ALG_KDF *out);
96*758e9fbaSOystein Eftevaag 
97*758e9fbaSOystein Eftevaag TSS2_RC
98*758e9fbaSOystein Eftevaag ifapi_json_TPMI_ALG_SIG_SCHEME_deserialize(json_object *jso,
99*758e9fbaSOystein Eftevaag         TPMI_ALG_SIG_SCHEME *out);
100*758e9fbaSOystein Eftevaag 
101*758e9fbaSOystein Eftevaag TSS2_RC
102*758e9fbaSOystein Eftevaag ifapi_json_TPMS_EMPTY_deserialize(json_object *jso, TPMS_EMPTY *out);
103*758e9fbaSOystein Eftevaag 
104*758e9fbaSOystein Eftevaag TSS2_RC
105*758e9fbaSOystein Eftevaag ifapi_json_TPMU_HA_deserialize(UINT32 selector, json_object *jso, TPMU_HA *out);
106*758e9fbaSOystein Eftevaag 
107*758e9fbaSOystein Eftevaag TSS2_RC
108*758e9fbaSOystein Eftevaag ifapi_json_TPMT_HA_deserialize(json_object *jso, TPMT_HA *out);
109*758e9fbaSOystein Eftevaag 
110*758e9fbaSOystein Eftevaag TSS2_RC
111*758e9fbaSOystein Eftevaag ifapi_json_TPM2B_DIGEST_deserialize(json_object *jso, TPM2B_DIGEST *out);
112*758e9fbaSOystein Eftevaag 
113*758e9fbaSOystein Eftevaag TSS2_RC
114*758e9fbaSOystein Eftevaag ifapi_json_TPM2B_DATA_deserialize(json_object *jso, TPM2B_DATA *out);
115*758e9fbaSOystein Eftevaag 
116*758e9fbaSOystein Eftevaag TSS2_RC
117*758e9fbaSOystein Eftevaag ifapi_json_TPM2B_NONCE_deserialize(json_object *jso, TPM2B_NONCE *out);
118*758e9fbaSOystein Eftevaag 
119*758e9fbaSOystein Eftevaag TSS2_RC
120*758e9fbaSOystein Eftevaag ifapi_json_TPM2B_OPERAND_deserialize(json_object *jso, TPM2B_OPERAND *out);
121*758e9fbaSOystein Eftevaag 
122*758e9fbaSOystein Eftevaag TSS2_RC
123*758e9fbaSOystein Eftevaag ifapi_json_TPM2B_EVENT_deserialize(json_object *jso, TPM2B_EVENT *out);
124*758e9fbaSOystein Eftevaag 
125*758e9fbaSOystein Eftevaag TSS2_RC
126*758e9fbaSOystein Eftevaag ifapi_json_TPM2B_MAX_NV_BUFFER_deserialize(json_object *jso,
127*758e9fbaSOystein Eftevaag         TPM2B_MAX_NV_BUFFER *out);
128*758e9fbaSOystein Eftevaag 
129*758e9fbaSOystein Eftevaag TSS2_RC
130*758e9fbaSOystein Eftevaag ifapi_json_TPM2B_NAME_deserialize(json_object *jso, TPM2B_NAME *out);
131*758e9fbaSOystein Eftevaag 
132*758e9fbaSOystein Eftevaag TSS2_RC
133*758e9fbaSOystein Eftevaag ifapi_json_TPMS_PCR_SELECT_deserialize(json_object *jso, TPMS_PCR_SELECT *out);
134*758e9fbaSOystein Eftevaag 
135*758e9fbaSOystein Eftevaag TSS2_RC
136*758e9fbaSOystein Eftevaag ifapi_json_TPMS_PCR_SELECTION_deserialize(json_object *jso,
137*758e9fbaSOystein Eftevaag         TPMS_PCR_SELECTION *out);
138*758e9fbaSOystein Eftevaag 
139*758e9fbaSOystein Eftevaag TSS2_RC
140*758e9fbaSOystein Eftevaag ifapi_json_TPMT_TK_CREATION_deserialize(json_object *jso,
141*758e9fbaSOystein Eftevaag                                         TPMT_TK_CREATION *out);
142*758e9fbaSOystein Eftevaag 
143*758e9fbaSOystein Eftevaag TSS2_RC
144*758e9fbaSOystein Eftevaag ifapi_json_TPMT_TK_VERIFIED_deserialize(json_object *jso,
145*758e9fbaSOystein Eftevaag                                         TPMT_TK_VERIFIED *out);
146*758e9fbaSOystein Eftevaag 
147*758e9fbaSOystein Eftevaag TSS2_RC
148*758e9fbaSOystein Eftevaag ifapi_json_TPML_DIGEST_VALUES_deserialize(json_object *jso,
149*758e9fbaSOystein Eftevaag         TPML_DIGEST_VALUES *out);
150*758e9fbaSOystein Eftevaag 
151*758e9fbaSOystein Eftevaag TSS2_RC
152*758e9fbaSOystein Eftevaag ifapi_json_TPML_PCR_SELECTION_deserialize(json_object *jso,
153*758e9fbaSOystein Eftevaag         TPML_PCR_SELECTION *out);
154*758e9fbaSOystein Eftevaag 
155*758e9fbaSOystein Eftevaag TSS2_RC
156*758e9fbaSOystein Eftevaag ifapi_json_TPMS_CLOCK_INFO_deserialize(json_object *jso, TPMS_CLOCK_INFO *out);
157*758e9fbaSOystein Eftevaag 
158*758e9fbaSOystein Eftevaag TSS2_RC
159*758e9fbaSOystein Eftevaag ifapi_json_TPMS_TIME_INFO_deserialize(json_object *jso, TPMS_TIME_INFO *out);
160*758e9fbaSOystein Eftevaag 
161*758e9fbaSOystein Eftevaag TSS2_RC
162*758e9fbaSOystein Eftevaag ifapi_json_TPMS_TIME_ATTEST_INFO_deserialize(json_object *jso,
163*758e9fbaSOystein Eftevaag         TPMS_TIME_ATTEST_INFO *out);
164*758e9fbaSOystein Eftevaag 
165*758e9fbaSOystein Eftevaag TSS2_RC
166*758e9fbaSOystein Eftevaag ifapi_json_TPMS_CERTIFY_INFO_deserialize(json_object *jso,
167*758e9fbaSOystein Eftevaag         TPMS_CERTIFY_INFO *out);
168*758e9fbaSOystein Eftevaag 
169*758e9fbaSOystein Eftevaag TSS2_RC
170*758e9fbaSOystein Eftevaag ifapi_json_TPMS_QUOTE_INFO_deserialize(json_object *jso, TPMS_QUOTE_INFO *out);
171*758e9fbaSOystein Eftevaag 
172*758e9fbaSOystein Eftevaag TSS2_RC
173*758e9fbaSOystein Eftevaag ifapi_json_TPMS_COMMAND_AUDIT_INFO_deserialize(json_object *jso,
174*758e9fbaSOystein Eftevaag         TPMS_COMMAND_AUDIT_INFO *out);
175*758e9fbaSOystein Eftevaag 
176*758e9fbaSOystein Eftevaag TSS2_RC
177*758e9fbaSOystein Eftevaag ifapi_json_TPMS_SESSION_AUDIT_INFO_deserialize(json_object *jso,
178*758e9fbaSOystein Eftevaag         TPMS_SESSION_AUDIT_INFO *out);
179*758e9fbaSOystein Eftevaag 
180*758e9fbaSOystein Eftevaag TSS2_RC
181*758e9fbaSOystein Eftevaag ifapi_json_TPMS_CREATION_INFO_deserialize(json_object *jso,
182*758e9fbaSOystein Eftevaag         TPMS_CREATION_INFO *out);
183*758e9fbaSOystein Eftevaag 
184*758e9fbaSOystein Eftevaag TSS2_RC
185*758e9fbaSOystein Eftevaag ifapi_json_TPMS_NV_CERTIFY_INFO_deserialize(json_object *jso,
186*758e9fbaSOystein Eftevaag         TPMS_NV_CERTIFY_INFO *out);
187*758e9fbaSOystein Eftevaag 
188*758e9fbaSOystein Eftevaag TSS2_RC
189*758e9fbaSOystein Eftevaag ifapi_json_TPMI_ST_ATTEST_deserialize(json_object *jso, TPMI_ST_ATTEST *out);
190*758e9fbaSOystein Eftevaag 
191*758e9fbaSOystein Eftevaag TSS2_RC
192*758e9fbaSOystein Eftevaag ifapi_json_TPMU_ATTEST_deserialize(UINT32 selector, json_object *jso,
193*758e9fbaSOystein Eftevaag                                    TPMU_ATTEST *out);
194*758e9fbaSOystein Eftevaag 
195*758e9fbaSOystein Eftevaag TSS2_RC
196*758e9fbaSOystein Eftevaag ifapi_json_TPMS_ATTEST_deserialize(json_object *jso, TPMS_ATTEST *out);
197*758e9fbaSOystein Eftevaag 
198*758e9fbaSOystein Eftevaag TSS2_RC
199*758e9fbaSOystein Eftevaag ifapi_json_TPMI_AES_KEY_BITS_deserialize(json_object *jso,
200*758e9fbaSOystein Eftevaag         TPMI_AES_KEY_BITS *out);
201*758e9fbaSOystein Eftevaag 
202*758e9fbaSOystein Eftevaag TSS2_RC
203*758e9fbaSOystein Eftevaag ifapi_json_TPMU_SYM_KEY_BITS_deserialize(UINT32 selector, json_object *jso,
204*758e9fbaSOystein Eftevaag         TPMU_SYM_KEY_BITS *out);
205*758e9fbaSOystein Eftevaag 
206*758e9fbaSOystein Eftevaag TSS2_RC
207*758e9fbaSOystein Eftevaag ifapi_json_TPMU_SYM_MODE_deserialize(UINT32 selector, json_object *jso,
208*758e9fbaSOystein Eftevaag                                      TPMU_SYM_MODE *out);
209*758e9fbaSOystein Eftevaag 
210*758e9fbaSOystein Eftevaag TSS2_RC
211*758e9fbaSOystein Eftevaag ifapi_json_TPMT_SYM_DEF_deserialize(json_object *jso, TPMT_SYM_DEF *out);
212*758e9fbaSOystein Eftevaag 
213*758e9fbaSOystein Eftevaag TSS2_RC
214*758e9fbaSOystein Eftevaag ifapi_json_TPMT_SYM_DEF_OBJECT_deserialize(json_object *jso,
215*758e9fbaSOystein Eftevaag         TPMT_SYM_DEF_OBJECT *out);
216*758e9fbaSOystein Eftevaag 
217*758e9fbaSOystein Eftevaag TSS2_RC
218*758e9fbaSOystein Eftevaag ifapi_json_TPMS_SYMCIPHER_PARMS_deserialize(json_object *jso,
219*758e9fbaSOystein Eftevaag         TPMS_SYMCIPHER_PARMS *out);
220*758e9fbaSOystein Eftevaag 
221*758e9fbaSOystein Eftevaag TSS2_RC
222*758e9fbaSOystein Eftevaag ifapi_json_TPMS_SCHEME_HASH_deserialize(json_object *jso,
223*758e9fbaSOystein Eftevaag                                         TPMS_SCHEME_HASH *out);
224*758e9fbaSOystein Eftevaag 
225*758e9fbaSOystein Eftevaag TSS2_RC
226*758e9fbaSOystein Eftevaag ifapi_json_TPMS_SCHEME_ECDAA_deserialize(json_object *jso,
227*758e9fbaSOystein Eftevaag         TPMS_SCHEME_ECDAA *out);
228*758e9fbaSOystein Eftevaag 
229*758e9fbaSOystein Eftevaag TSS2_RC
230*758e9fbaSOystein Eftevaag ifapi_json_TPMI_ALG_KEYEDHASH_SCHEME_deserialize(json_object *jso,
231*758e9fbaSOystein Eftevaag         TPMI_ALG_KEYEDHASH_SCHEME *out);
232*758e9fbaSOystein Eftevaag 
233*758e9fbaSOystein Eftevaag TSS2_RC
234*758e9fbaSOystein Eftevaag ifapi_json_TPMS_SCHEME_HMAC_deserialize(json_object *jso,
235*758e9fbaSOystein Eftevaag                                         TPMS_SCHEME_HMAC *out);
236*758e9fbaSOystein Eftevaag 
237*758e9fbaSOystein Eftevaag TSS2_RC
238*758e9fbaSOystein Eftevaag ifapi_json_TPMS_SCHEME_XOR_deserialize(json_object *jso, TPMS_SCHEME_XOR *out);
239*758e9fbaSOystein Eftevaag 
240*758e9fbaSOystein Eftevaag TSS2_RC
241*758e9fbaSOystein Eftevaag ifapi_json_TPMU_SCHEME_KEYEDHASH_deserialize(UINT32 selector, json_object *jso,
242*758e9fbaSOystein Eftevaag         TPMU_SCHEME_KEYEDHASH *out);
243*758e9fbaSOystein Eftevaag 
244*758e9fbaSOystein Eftevaag TSS2_RC
245*758e9fbaSOystein Eftevaag ifapi_json_TPMT_KEYEDHASH_SCHEME_deserialize(json_object *jso,
246*758e9fbaSOystein Eftevaag         TPMT_KEYEDHASH_SCHEME *out);
247*758e9fbaSOystein Eftevaag 
248*758e9fbaSOystein Eftevaag TSS2_RC
249*758e9fbaSOystein Eftevaag ifapi_json_TPMS_SIG_SCHEME_RSASSA_deserialize(json_object *jso,
250*758e9fbaSOystein Eftevaag         TPMS_SIG_SCHEME_RSASSA *out);
251*758e9fbaSOystein Eftevaag 
252*758e9fbaSOystein Eftevaag TSS2_RC
253*758e9fbaSOystein Eftevaag ifapi_json_TPMS_SIG_SCHEME_RSAPSS_deserialize(json_object *jso,
254*758e9fbaSOystein Eftevaag         TPMS_SIG_SCHEME_RSAPSS *out);
255*758e9fbaSOystein Eftevaag 
256*758e9fbaSOystein Eftevaag TSS2_RC
257*758e9fbaSOystein Eftevaag ifapi_json_TPMS_SIG_SCHEME_ECDSA_deserialize(json_object *jso,
258*758e9fbaSOystein Eftevaag         TPMS_SIG_SCHEME_ECDSA *out);
259*758e9fbaSOystein Eftevaag 
260*758e9fbaSOystein Eftevaag TSS2_RC
261*758e9fbaSOystein Eftevaag ifapi_json_TPMS_SIG_SCHEME_SM2_deserialize(json_object *jso,
262*758e9fbaSOystein Eftevaag         TPMS_SIG_SCHEME_SM2 *out);
263*758e9fbaSOystein Eftevaag 
264*758e9fbaSOystein Eftevaag TSS2_RC
265*758e9fbaSOystein Eftevaag ifapi_json_TPMS_SIG_SCHEME_ECSCHNORR_deserialize(json_object *jso,
266*758e9fbaSOystein Eftevaag         TPMS_SIG_SCHEME_ECSCHNORR *out);
267*758e9fbaSOystein Eftevaag 
268*758e9fbaSOystein Eftevaag TSS2_RC
269*758e9fbaSOystein Eftevaag ifapi_json_TPMS_SIG_SCHEME_ECDAA_deserialize(json_object *jso,
270*758e9fbaSOystein Eftevaag         TPMS_SIG_SCHEME_ECDAA *out);
271*758e9fbaSOystein Eftevaag 
272*758e9fbaSOystein Eftevaag TSS2_RC
273*758e9fbaSOystein Eftevaag ifapi_json_TPMU_SIG_SCHEME_deserialize(UINT32 selector, json_object *jso,
274*758e9fbaSOystein Eftevaag                                        TPMU_SIG_SCHEME *out);
275*758e9fbaSOystein Eftevaag 
276*758e9fbaSOystein Eftevaag TSS2_RC
277*758e9fbaSOystein Eftevaag ifapi_json_TPMT_SIG_SCHEME_deserialize(json_object *jso, TPMT_SIG_SCHEME *out);
278*758e9fbaSOystein Eftevaag 
279*758e9fbaSOystein Eftevaag TSS2_RC
280*758e9fbaSOystein Eftevaag ifapi_json_TPMS_ENC_SCHEME_OAEP_deserialize(json_object *jso,
281*758e9fbaSOystein Eftevaag         TPMS_ENC_SCHEME_OAEP *out);
282*758e9fbaSOystein Eftevaag 
283*758e9fbaSOystein Eftevaag TSS2_RC
284*758e9fbaSOystein Eftevaag ifapi_json_TPMS_ENC_SCHEME_RSAES_deserialize(json_object *jso,
285*758e9fbaSOystein Eftevaag         TPMS_ENC_SCHEME_RSAES *out);
286*758e9fbaSOystein Eftevaag 
287*758e9fbaSOystein Eftevaag TSS2_RC
288*758e9fbaSOystein Eftevaag ifapi_json_TPMS_KEY_SCHEME_ECDH_deserialize(json_object *jso,
289*758e9fbaSOystein Eftevaag         TPMS_KEY_SCHEME_ECDH *out);
290*758e9fbaSOystein Eftevaag 
291*758e9fbaSOystein Eftevaag TSS2_RC
292*758e9fbaSOystein Eftevaag ifapi_json_TPMS_SCHEME_MGF1_deserialize(json_object *jso,
293*758e9fbaSOystein Eftevaag                                         TPMS_SCHEME_MGF1 *out);
294*758e9fbaSOystein Eftevaag 
295*758e9fbaSOystein Eftevaag TSS2_RC
296*758e9fbaSOystein Eftevaag ifapi_json_TPMS_SCHEME_KDF1_SP800_56A_deserialize(json_object *jso,
297*758e9fbaSOystein Eftevaag         TPMS_SCHEME_KDF1_SP800_56A *out);
298*758e9fbaSOystein Eftevaag 
299*758e9fbaSOystein Eftevaag TSS2_RC
300*758e9fbaSOystein Eftevaag ifapi_json_TPMS_SCHEME_KDF1_SP800_108_deserialize(json_object *jso,
301*758e9fbaSOystein Eftevaag         TPMS_SCHEME_KDF1_SP800_108 *out);
302*758e9fbaSOystein Eftevaag 
303*758e9fbaSOystein Eftevaag TSS2_RC
304*758e9fbaSOystein Eftevaag ifapi_json_TPMU_KDF_SCHEME_deserialize(UINT32 selector, json_object *jso,
305*758e9fbaSOystein Eftevaag                                        TPMU_KDF_SCHEME *out);
306*758e9fbaSOystein Eftevaag 
307*758e9fbaSOystein Eftevaag TSS2_RC
308*758e9fbaSOystein Eftevaag ifapi_json_TPMT_KDF_SCHEME_deserialize(json_object *jso, TPMT_KDF_SCHEME *out);
309*758e9fbaSOystein Eftevaag 
310*758e9fbaSOystein Eftevaag TSS2_RC
311*758e9fbaSOystein Eftevaag ifapi_json_TPMU_ASYM_SCHEME_deserialize(UINT32 selector, json_object *jso,
312*758e9fbaSOystein Eftevaag                                         TPMU_ASYM_SCHEME *out);
313*758e9fbaSOystein Eftevaag 
314*758e9fbaSOystein Eftevaag TSS2_RC
315*758e9fbaSOystein Eftevaag ifapi_json_TPMI_ALG_RSA_SCHEME_deserialize(json_object *jso,
316*758e9fbaSOystein Eftevaag         TPMI_ALG_RSA_SCHEME *out);
317*758e9fbaSOystein Eftevaag 
318*758e9fbaSOystein Eftevaag TSS2_RC
319*758e9fbaSOystein Eftevaag ifapi_json_TPMT_RSA_SCHEME_deserialize(json_object *jso, TPMT_RSA_SCHEME *out);
320*758e9fbaSOystein Eftevaag 
321*758e9fbaSOystein Eftevaag TSS2_RC
322*758e9fbaSOystein Eftevaag ifapi_json_TPMI_ALG_RSA_DECRYPT_deserialize(json_object *jso,
323*758e9fbaSOystein Eftevaag         TPMI_ALG_RSA_DECRYPT *out);
324*758e9fbaSOystein Eftevaag 
325*758e9fbaSOystein Eftevaag TSS2_RC
326*758e9fbaSOystein Eftevaag ifapi_json_TPMT_RSA_DECRYPT_deserialize(json_object *jso,
327*758e9fbaSOystein Eftevaag                                         TPMT_RSA_DECRYPT *out);
328*758e9fbaSOystein Eftevaag 
329*758e9fbaSOystein Eftevaag TSS2_RC
330*758e9fbaSOystein Eftevaag ifapi_json_TPM2B_PUBLIC_KEY_RSA_deserialize(json_object *jso,
331*758e9fbaSOystein Eftevaag         TPM2B_PUBLIC_KEY_RSA *out);
332*758e9fbaSOystein Eftevaag 
333*758e9fbaSOystein Eftevaag TSS2_RC
334*758e9fbaSOystein Eftevaag ifapi_json_TPMI_RSA_KEY_BITS_deserialize(json_object *jso,
335*758e9fbaSOystein Eftevaag         TPMI_RSA_KEY_BITS *out);
336*758e9fbaSOystein Eftevaag 
337*758e9fbaSOystein Eftevaag TSS2_RC
338*758e9fbaSOystein Eftevaag ifapi_json_TPM2B_ECC_PARAMETER_deserialize(json_object *jso,
339*758e9fbaSOystein Eftevaag         TPM2B_ECC_PARAMETER *out);
340*758e9fbaSOystein Eftevaag 
341*758e9fbaSOystein Eftevaag TSS2_RC
342*758e9fbaSOystein Eftevaag ifapi_json_TPMS_ECC_POINT_deserialize(json_object *jso, TPMS_ECC_POINT *out);
343*758e9fbaSOystein Eftevaag 
344*758e9fbaSOystein Eftevaag TSS2_RC
345*758e9fbaSOystein Eftevaag ifapi_json_TPMI_ALG_ECC_SCHEME_deserialize(json_object *jso,
346*758e9fbaSOystein Eftevaag         TPMI_ALG_ECC_SCHEME *out);
347*758e9fbaSOystein Eftevaag 
348*758e9fbaSOystein Eftevaag TSS2_RC
349*758e9fbaSOystein Eftevaag ifapi_json_TPMI_ECC_CURVE_deserialize(json_object *jso, TPMI_ECC_CURVE *out);
350*758e9fbaSOystein Eftevaag 
351*758e9fbaSOystein Eftevaag TSS2_RC
352*758e9fbaSOystein Eftevaag ifapi_json_TPMT_ECC_SCHEME_deserialize(json_object *jso, TPMT_ECC_SCHEME *out);
353*758e9fbaSOystein Eftevaag 
354*758e9fbaSOystein Eftevaag TSS2_RC
355*758e9fbaSOystein Eftevaag ifapi_json_TPMS_SIGNATURE_RSA_deserialize(json_object *jso,
356*758e9fbaSOystein Eftevaag         TPMS_SIGNATURE_RSA *out);
357*758e9fbaSOystein Eftevaag 
358*758e9fbaSOystein Eftevaag TSS2_RC
359*758e9fbaSOystein Eftevaag ifapi_json_TPMS_SIGNATURE_RSASSA_deserialize(json_object *jso,
360*758e9fbaSOystein Eftevaag         TPMS_SIGNATURE_RSASSA *out);
361*758e9fbaSOystein Eftevaag 
362*758e9fbaSOystein Eftevaag TSS2_RC
363*758e9fbaSOystein Eftevaag ifapi_json_TPMS_SIGNATURE_RSAPSS_deserialize(json_object *jso,
364*758e9fbaSOystein Eftevaag         TPMS_SIGNATURE_RSAPSS *out);
365*758e9fbaSOystein Eftevaag 
366*758e9fbaSOystein Eftevaag TSS2_RC
367*758e9fbaSOystein Eftevaag ifapi_json_TPMS_SIGNATURE_ECC_deserialize(json_object *jso,
368*758e9fbaSOystein Eftevaag         TPMS_SIGNATURE_ECC *out);
369*758e9fbaSOystein Eftevaag 
370*758e9fbaSOystein Eftevaag TSS2_RC
371*758e9fbaSOystein Eftevaag ifapi_json_TPMS_SIGNATURE_ECDSA_deserialize(json_object *jso,
372*758e9fbaSOystein Eftevaag         TPMS_SIGNATURE_ECDSA *out);
373*758e9fbaSOystein Eftevaag 
374*758e9fbaSOystein Eftevaag TSS2_RC
375*758e9fbaSOystein Eftevaag ifapi_json_TPMS_SIGNATURE_ECDAA_deserialize(json_object *jso,
376*758e9fbaSOystein Eftevaag         TPMS_SIGNATURE_ECDAA *out);
377*758e9fbaSOystein Eftevaag 
378*758e9fbaSOystein Eftevaag TSS2_RC
379*758e9fbaSOystein Eftevaag ifapi_json_TPMS_SIGNATURE_SM2_deserialize(json_object *jso,
380*758e9fbaSOystein Eftevaag         TPMS_SIGNATURE_SM2 *out);
381*758e9fbaSOystein Eftevaag 
382*758e9fbaSOystein Eftevaag TSS2_RC
383*758e9fbaSOystein Eftevaag ifapi_json_TPMS_SIGNATURE_ECSCHNORR_deserialize(json_object *jso,
384*758e9fbaSOystein Eftevaag         TPMS_SIGNATURE_ECSCHNORR *out);
385*758e9fbaSOystein Eftevaag 
386*758e9fbaSOystein Eftevaag TSS2_RC
387*758e9fbaSOystein Eftevaag ifapi_json_TPMU_SIGNATURE_deserialize(UINT32 selector, json_object *jso,
388*758e9fbaSOystein Eftevaag                                       TPMU_SIGNATURE *out);
389*758e9fbaSOystein Eftevaag 
390*758e9fbaSOystein Eftevaag TSS2_RC
391*758e9fbaSOystein Eftevaag ifapi_json_TPMT_SIGNATURE_deserialize(json_object *jso, TPMT_SIGNATURE *out);
392*758e9fbaSOystein Eftevaag 
393*758e9fbaSOystein Eftevaag TSS2_RC
394*758e9fbaSOystein Eftevaag ifapi_json_TPM2B_ENCRYPTED_SECRET_deserialize(json_object *jso,
395*758e9fbaSOystein Eftevaag         TPM2B_ENCRYPTED_SECRET *out);
396*758e9fbaSOystein Eftevaag 
397*758e9fbaSOystein Eftevaag TSS2_RC
398*758e9fbaSOystein Eftevaag ifapi_json_TPMI_ALG_PUBLIC_deserialize(json_object *jso, TPMI_ALG_PUBLIC *out);
399*758e9fbaSOystein Eftevaag 
400*758e9fbaSOystein Eftevaag TSS2_RC
401*758e9fbaSOystein Eftevaag ifapi_json_TPMU_PUBLIC_ID_deserialize(UINT32 selector, json_object *jso,
402*758e9fbaSOystein Eftevaag                                       TPMU_PUBLIC_ID *out);
403*758e9fbaSOystein Eftevaag 
404*758e9fbaSOystein Eftevaag TSS2_RC
405*758e9fbaSOystein Eftevaag ifapi_json_TPMS_KEYEDHASH_PARMS_deserialize(json_object *jso,
406*758e9fbaSOystein Eftevaag         TPMS_KEYEDHASH_PARMS *out);
407*758e9fbaSOystein Eftevaag 
408*758e9fbaSOystein Eftevaag TSS2_RC
409*758e9fbaSOystein Eftevaag ifapi_json_TPMS_RSA_PARMS_deserialize(json_object *jso, TPMS_RSA_PARMS *out);
410*758e9fbaSOystein Eftevaag 
411*758e9fbaSOystein Eftevaag TSS2_RC
412*758e9fbaSOystein Eftevaag ifapi_json_TPMS_ECC_PARMS_deserialize(json_object *jso, TPMS_ECC_PARMS *out);
413*758e9fbaSOystein Eftevaag 
414*758e9fbaSOystein Eftevaag TSS2_RC
415*758e9fbaSOystein Eftevaag ifapi_json_TPMU_PUBLIC_PARMS_deserialize(UINT32 selector, json_object *jso,
416*758e9fbaSOystein Eftevaag         TPMU_PUBLIC_PARMS *out);
417*758e9fbaSOystein Eftevaag 
418*758e9fbaSOystein Eftevaag TSS2_RC
419*758e9fbaSOystein Eftevaag ifapi_json_TPMT_PUBLIC_deserialize(json_object *jso, TPMT_PUBLIC *out);
420*758e9fbaSOystein Eftevaag 
421*758e9fbaSOystein Eftevaag TSS2_RC
422*758e9fbaSOystein Eftevaag ifapi_json_TPM2B_PUBLIC_deserialize(json_object *jso, TPM2B_PUBLIC *out);
423*758e9fbaSOystein Eftevaag 
424*758e9fbaSOystein Eftevaag TSS2_RC
425*758e9fbaSOystein Eftevaag ifapi_json_TPM2B_PRIVATE_deserialize(json_object *jso, TPM2B_PRIVATE *out);
426*758e9fbaSOystein Eftevaag 
427*758e9fbaSOystein Eftevaag TSS2_RC
428*758e9fbaSOystein Eftevaag ifapi_json_TPM2_NT_deserialize(json_object *jso, TPM2_NT *out);
429*758e9fbaSOystein Eftevaag 
430*758e9fbaSOystein Eftevaag TSS2_RC
431*758e9fbaSOystein Eftevaag ifapi_json_TPMA_NV_deserialize(json_object *jso, TPMA_NV *out);
432*758e9fbaSOystein Eftevaag 
433*758e9fbaSOystein Eftevaag TSS2_RC
434*758e9fbaSOystein Eftevaag ifapi_json_TPMS_NV_PUBLIC_deserialize(json_object *jso, TPMS_NV_PUBLIC *out);
435*758e9fbaSOystein Eftevaag 
436*758e9fbaSOystein Eftevaag TSS2_RC
437*758e9fbaSOystein Eftevaag ifapi_json_TPM2B_NV_PUBLIC_deserialize(json_object *jso, TPM2B_NV_PUBLIC *out);
438*758e9fbaSOystein Eftevaag 
439*758e9fbaSOystein Eftevaag TSS2_RC
440*758e9fbaSOystein Eftevaag ifapi_json_TPMS_CREATION_DATA_deserialize(json_object *jso,
441*758e9fbaSOystein Eftevaag         TPMS_CREATION_DATA *out);
442*758e9fbaSOystein Eftevaag 
443*758e9fbaSOystein Eftevaag TSS2_RC
444*758e9fbaSOystein Eftevaag ifapi_json_TPM2B_CREATION_DATA_deserialize(json_object *jso,
445*758e9fbaSOystein Eftevaag         TPM2B_CREATION_DATA *out);
446*758e9fbaSOystein Eftevaag 
447*758e9fbaSOystein Eftevaag #endif /* FAPI_TPM_JSON_DESERIALIZE_H */
448