tpm2-tss  3.2.1
TPM Software stack 2.0 TCG spec compliant implementation
tpm_json_deserialize.h
1 /* SPDX-License-Identifier: BSD-2-Clause */
2 /*******************************************************************************
3  * Copyright 2018-2019, Fraunhofer SIT sponsored by Infineon Technologies AG
4  * All rights reserved.
5  ******************************************************************************/
6 #ifndef FAPI_TPM_JSON_DESERIALIZE_H
7 #define FAPI_TPM_JSON_DESERIALIZE_H
8 
9 #include <stdbool.h>
10 #include <json-c/json.h>
11 #include <json-c/json_util.h>
12 
13 #include "tss2_tpm2_types.h"
14 #include "fapi_int.h"
15 #define YES 1
16 #define NO 0
17 
18 /* Deserialize according to the rules of parenttype and then filter against values
19  provided in the ... list. */
20 #define SUBTYPE_FILTER(type, parenttype, ...) \
21  TSS2_RC r; \
22  type tab[] = { __VA_ARGS__ }; \
23  type v; \
24  r = ifapi_json_ ## parenttype ## _deserialize(jso, &v); \
25  return_if_error(r, "Bad value"); \
26  for (size_t i = 0; i < sizeof(tab) / sizeof(tab[0]); i++) { \
27  if (v == tab[i]) { \
28  *out = v; \
29  return TSS2_RC_SUCCESS; \
30  } \
31  } \
32  LOG_ERROR("Bad sub-value"); \
33  return TSS2_FAPI_RC_BAD_VALUE;
34 
35 json_object*
36 ifapi_parse_json(const char *jstring) ;
37 
38 TSS2_RC
39 ifapi_hex_to_byte_ary(const char hex[], UINT32 vlen, BYTE val[]);
40 
41 TSS2_RC
42 ifapi_json_BYTE_array_deserialize(size_t max, json_object *jso, BYTE *out);
43 
44 TSS2_RC
45 ifapi_json_UINT8_ARY_deserialize(json_object *jso, UINT8_ARY *out);
46 
47 bool
48 ifapi_get_sub_object(json_object *jso, char *name, json_object **sub_jso);
49 
50 TSS2_RC
51 ifapi_json_BYTE_deserialize(json_object *jso, BYTE *out);
52 
53 TSS2_RC
54 ifapi_json_UINT16_deserialize(json_object *jso, UINT16 *out);
55 
56 TSS2_RC
57 ifapi_json_UINT32_deserialize(json_object *jso, UINT32 *out);
58 
59 TSS2_RC
60 ifapi_json_UINT64_deserialize(json_object *jso, UINT64 *out);
61 
62 TSS2_RC
63 ifapi_json_TPM2_GENERATED_deserialize(json_object *jso, TPM2_GENERATED *out);
64 
65 TSS2_RC
66 ifapi_json_TPM2_ALG_ID_deserialize(json_object *jso, TPM2_ALG_ID *out);
67 
68 TSS2_RC
69 ifapi_json_TPM2_ECC_CURVE_deserialize(json_object *jso, TPM2_ECC_CURVE *out);
70 
71 TSS2_RC
72 ifapi_json_TPM2_CC_deserialize(json_object *jso, TPM2_CC *out);
73 
74 TSS2_RC
75 ifapi_json_TPM2_EO_deserialize(json_object *jso, TPM2_EO *out);
76 
77 TSS2_RC
78 ifapi_json_TPM2_ST_deserialize(json_object *jso, TPM2_ST *out);
79 
80 TSS2_RC
81 ifapi_json_TPM2_PT_PCR_deserialize(json_object *jso, TPM2_PT_PCR *out);
82 
83 TSS2_RC
84 ifapi_json_TPM2_HANDLE_deserialize(json_object *jso, TPM2_HANDLE *out);
85 
86 TSS2_RC
87 ifapi_json_TPMA_OBJECT_deserialize(json_object *jso, TPMA_OBJECT *out);
88 
89 TSS2_RC
90 ifapi_json_TPMA_LOCALITY_deserialize(json_object *jso, TPMA_LOCALITY *out);
91 
92 TSS2_RC
93 ifapi_json_TPMA_ACT_deserialize(json_object *jso, TPMA_ACT *out);
94 
95 TSS2_RC
96 ifapi_json_TPMI_YES_NO_deserialize(json_object *jso, TPMI_YES_NO *out);
97 
98 TSS2_RC
100  TPMI_RH_HIERARCHY *out);
101 
102 TSS2_RC
104  TPMI_RH_NV_INDEX *out);
105 
106 TSS2_RC
107 ifapi_json_TPMI_ALG_HASH_deserialize(json_object *jso, TPMI_ALG_HASH *out);
108 
109 TSS2_RC
110 ifapi_json_TPMI_ALG_SYM_deserialize(json_object *jso, TPMI_ALG_SYM *out);
111 
112 TSS2_RC
114  TPMI_ALG_SYM_OBJECT *out);
115 
116 TSS2_RC
118  TPMI_ALG_CIPHER_MODE *out);
119 
120 TSS2_RC
122  TPMI_ALG_SYM_MODE *out);
123 
124 TSS2_RC
125 ifapi_json_TPMI_ALG_KDF_deserialize(json_object *jso, TPMI_ALG_KDF *out);
126 
127 TSS2_RC
129  TPMI_ALG_SIG_SCHEME *out);
130 
131 TSS2_RC
132 ifapi_json_TPMS_EMPTY_deserialize(json_object *jso, TPMS_EMPTY *out);
133 
134 TSS2_RC
135 ifapi_json_TPMU_HA_deserialize(UINT32 selector, json_object *jso, TPMU_HA *out);
136 
137 TSS2_RC
138 ifapi_json_TPMT_HA_deserialize(json_object *jso, TPMT_HA *out);
139 
140 TSS2_RC
141 ifapi_json_TPM2B_DIGEST_deserialize(json_object *jso, TPM2B_DIGEST *out);
142 
143 TSS2_RC
144 ifapi_json_TPM2B_DATA_deserialize(json_object *jso, TPM2B_DATA *out);
145 
146 TSS2_RC
147 ifapi_json_TPM2B_NONCE_deserialize(json_object *jso, TPM2B_NONCE *out);
148 
149 TSS2_RC
150 ifapi_json_TPM2B_OPERAND_deserialize(json_object *jso, TPM2B_OPERAND *out);
151 
152 TSS2_RC
153 ifapi_json_TPM2B_EVENT_deserialize(json_object *jso, TPM2B_EVENT *out);
154 
155 TSS2_RC
157  TPM2B_MAX_NV_BUFFER *out);
158 
159 TSS2_RC
160 ifapi_json_TPM2B_NAME_deserialize(json_object *jso, TPM2B_NAME *out);
161 
162 TSS2_RC
163 ifapi_json_TPMS_PCR_SELECT_deserialize(json_object *jso, TPMS_PCR_SELECT *out);
164 
165 TSS2_RC
167  TPMS_PCR_SELECTION *out);
168 
169 TSS2_RC
170 ifapi_json_TPMS_TAGGED_POLICY_deserialize(json_object *jso,
171  TPMS_TAGGED_POLICY *out);
172 
173 TSS2_RC
174 ifapi_json_TPMS_ACT_DATA_deserialize(json_object *jso,
175  TPMS_ACT_DATA *out);
176 
177 TSS2_RC
179  TPMT_TK_CREATION *out);
180 
181 TSS2_RC
183  TPML_DIGEST_VALUES *out);
184 
185 TSS2_RC
187  TPML_PCR_SELECTION *out);
188 
189 TSS2_RC
190 ifapi_json_TPMS_CLOCK_INFO_deserialize(json_object *jso, TPMS_CLOCK_INFO *out);
191 
192 TSS2_RC
193 ifapi_json_TPMS_TIME_INFO_deserialize(json_object *jso, TPMS_TIME_INFO *out);
194 
195 TSS2_RC
197  TPMS_TIME_ATTEST_INFO *out);
198 
199 TSS2_RC
201  TPMS_CERTIFY_INFO *out);
202 
203 TSS2_RC
204 ifapi_json_TPMS_QUOTE_INFO_deserialize(json_object *jso, TPMS_QUOTE_INFO *out);
205 
206 TSS2_RC
208  TPMS_COMMAND_AUDIT_INFO *out);
209 
210 TSS2_RC
212  TPMS_SESSION_AUDIT_INFO *out);
213 
214 TSS2_RC
216  TPMS_CREATION_INFO *out);
217 
218 TSS2_RC
220  TPMS_NV_CERTIFY_INFO *out);
221 
222 TSS2_RC
223 ifapi_json_TPMI_ST_ATTEST_deserialize(json_object *jso, TPMI_ST_ATTEST *out);
224 
225 TSS2_RC
226 ifapi_json_TPMU_ATTEST_deserialize(UINT32 selector, json_object *jso,
227  TPMU_ATTEST *out);
228 
229 TSS2_RC
230 ifapi_json_TPMS_ATTEST_deserialize(json_object *jso, TPMS_ATTEST *out);
231 
232 TSS2_RC
234  TPMI_AES_KEY_BITS *out);
235 
236 TSS2_RC
237 ifapi_json_TPMU_SYM_KEY_BITS_deserialize(UINT32 selector, json_object *jso,
238  TPMU_SYM_KEY_BITS *out);
239 
240 TSS2_RC
241 ifapi_json_TPMU_SYM_MODE_deserialize(UINT32 selector, json_object *jso,
242  TPMU_SYM_MODE *out);
243 
244 TSS2_RC
245 ifapi_json_TPMT_SYM_DEF_deserialize(json_object *jso, TPMT_SYM_DEF *out);
246 
247 TSS2_RC
249  TPMT_SYM_DEF_OBJECT *out);
250 
251 TSS2_RC
253  TPMS_SYMCIPHER_PARMS *out);
254 
255 TSS2_RC
257  TPMS_SCHEME_HASH *out);
258 
259 TSS2_RC
261  TPMS_SCHEME_ECDAA *out);
262 
263 TSS2_RC
265  TPMI_ALG_KEYEDHASH_SCHEME *out);
266 
267 TSS2_RC
269  TPMS_SCHEME_HMAC *out);
270 
271 TSS2_RC
272 ifapi_json_TPMS_SCHEME_XOR_deserialize(json_object *jso, TPMS_SCHEME_XOR *out);
273 
274 TSS2_RC
275 ifapi_json_TPMU_SCHEME_KEYEDHASH_deserialize(UINT32 selector, json_object *jso,
276  TPMU_SCHEME_KEYEDHASH *out);
277 
278 TSS2_RC
280  TPMT_KEYEDHASH_SCHEME *out);
281 
282 TSS2_RC
284  TPMS_SIG_SCHEME_RSASSA *out);
285 
286 TSS2_RC
288  TPMS_SIG_SCHEME_RSAPSS *out);
289 
290 TSS2_RC
292  TPMS_SIG_SCHEME_ECDSA *out);
293 
294 TSS2_RC
296  TPMS_SIG_SCHEME_SM2 *out);
297 
298 TSS2_RC
300  TPMS_SIG_SCHEME_ECSCHNORR *out);
301 
302 TSS2_RC
304  TPMS_SIG_SCHEME_ECDAA *out);
305 
306 TSS2_RC
307 ifapi_json_TPMU_SIG_SCHEME_deserialize(UINT32 selector, json_object *jso,
308  TPMU_SIG_SCHEME *out);
309 
310 TSS2_RC
311 ifapi_json_TPMT_SIG_SCHEME_deserialize(json_object *jso, TPMT_SIG_SCHEME *out);
312 
313 TSS2_RC
315  TPMS_ENC_SCHEME_OAEP *out);
316 
317 TSS2_RC
319  TPMS_ENC_SCHEME_RSAES *out);
320 
321 TSS2_RC
323  TPMS_KEY_SCHEME_ECDH *out);
324 
325 TSS2_RC
327  TPMS_SCHEME_MGF1 *out);
328 
329 TSS2_RC
331  TPMS_SCHEME_KDF1_SP800_56A *out);
332 
333 TSS2_RC
335  TPMS_SCHEME_KDF1_SP800_108 *out);
336 
337 TSS2_RC
338 ifapi_json_TPMU_KDF_SCHEME_deserialize(UINT32 selector, json_object *jso,
339  TPMU_KDF_SCHEME *out);
340 
341 TSS2_RC
342 ifapi_json_TPMT_KDF_SCHEME_deserialize(json_object *jso, TPMT_KDF_SCHEME *out);
343 
344 TSS2_RC
345 ifapi_json_TPMU_ASYM_SCHEME_deserialize(UINT32 selector, json_object *jso,
346  TPMU_ASYM_SCHEME *out);
347 
348 TSS2_RC
350  TPMI_ALG_RSA_SCHEME *out);
351 
352 TSS2_RC
353 ifapi_json_TPMT_RSA_SCHEME_deserialize(json_object *jso, TPMT_RSA_SCHEME *out);
354 
355 TSS2_RC
357  TPMI_ALG_RSA_DECRYPT *out);
358 
359 TSS2_RC
361  TPMT_RSA_DECRYPT *out);
362 
363 TSS2_RC
365  TPM2B_PUBLIC_KEY_RSA *out);
366 
367 TSS2_RC
369  TPMI_RSA_KEY_BITS *out);
370 
371 TSS2_RC
373  TPM2B_ECC_PARAMETER *out);
374 
375 TSS2_RC
376 ifapi_json_TPMS_ECC_POINT_deserialize(json_object *jso, TPMS_ECC_POINT *out);
377 
378 TSS2_RC
380  TPMI_ALG_ECC_SCHEME *out);
381 
382 TSS2_RC
383 ifapi_json_TPMI_ECC_CURVE_deserialize(json_object *jso, TPMI_ECC_CURVE *out);
384 
385 TSS2_RC
386 ifapi_json_TPMT_ECC_SCHEME_deserialize(json_object *jso, TPMT_ECC_SCHEME *out);
387 
388 TSS2_RC
390  TPMS_SIGNATURE_RSA *out);
391 
392 TSS2_RC
394  TPMS_SIGNATURE_RSASSA *out);
395 
396 TSS2_RC
398  TPMS_SIGNATURE_RSAPSS *out);
399 
400 TSS2_RC
402  TPMS_SIGNATURE_ECC *out);
403 
404 TSS2_RC
406  TPMS_SIGNATURE_ECDSA *out);
407 
408 TSS2_RC
410  TPMS_SIGNATURE_ECDAA *out);
411 
412 TSS2_RC
414  TPMS_SIGNATURE_SM2 *out);
415 
416 TSS2_RC
418  TPMS_SIGNATURE_ECSCHNORR *out);
419 
420 TSS2_RC
421 ifapi_json_TPMU_SIGNATURE_deserialize(UINT32 selector, json_object *jso,
422  TPMU_SIGNATURE *out);
423 
424 TSS2_RC
425 ifapi_json_TPMT_SIGNATURE_deserialize(json_object *jso, TPMT_SIGNATURE *out);
426 
427 TSS2_RC
429  TPM2B_ENCRYPTED_SECRET *out);
430 
431 TSS2_RC
432 ifapi_json_TPMI_ALG_PUBLIC_deserialize(json_object *jso, TPMI_ALG_PUBLIC *out);
433 
434 TSS2_RC
435 ifapi_json_TPMU_PUBLIC_ID_deserialize(UINT32 selector, json_object *jso,
436  TPMU_PUBLIC_ID *out);
437 
438 TSS2_RC
440  TPMS_KEYEDHASH_PARMS *out);
441 
442 TSS2_RC
443 ifapi_json_TPMS_RSA_PARMS_deserialize(json_object *jso, TPMS_RSA_PARMS *out);
444 
445 TSS2_RC
446 ifapi_json_TPMS_ECC_PARMS_deserialize(json_object *jso, TPMS_ECC_PARMS *out);
447 
448 TSS2_RC
449 ifapi_json_TPMU_PUBLIC_PARMS_deserialize(UINT32 selector, json_object *jso,
450  TPMU_PUBLIC_PARMS *out);
451 
452 TSS2_RC
453 ifapi_json_TPMT_PUBLIC_deserialize(json_object *jso, TPMT_PUBLIC *out);
454 
455 TSS2_RC
456 ifapi_json_TPM2B_PUBLIC_deserialize(json_object *jso, TPM2B_PUBLIC *out);
457 
458 TSS2_RC
459 ifapi_json_TPM2B_PRIVATE_deserialize(json_object *jso, TPM2B_PRIVATE *out);
460 
461 TSS2_RC
462 ifapi_json_TPM2_NT_deserialize(json_object *jso, TPM2_NT *out);
463 
464 TSS2_RC
465 ifapi_json_TPMA_NV_deserialize(json_object *jso, TPMA_NV *out);
466 
467 TSS2_RC
468 ifapi_json_TPMS_NV_PUBLIC_deserialize(json_object *jso, TPMS_NV_PUBLIC *out);
469 
470 TSS2_RC
471 ifapi_json_TPM2B_NV_PUBLIC_deserialize(json_object *jso, TPM2B_NV_PUBLIC *out);
472 
473 TSS2_RC
475  TPMS_CREATION_DATA *out);
476 
477 TSS2_RC
479  TPM2B_CREATION_DATA *out);
480 
481 #endif /* FAPI_TPM_JSON_DESERIALIZE_H */
TSS2_RC ifapi_json_UINT32_deserialize(json_object *jso, UINT32 *out)
Definition: tpm_json_deserialize.c:619
TSS2_RC ifapi_json_TPMI_RH_HIERARCHY_deserialize(json_object *jso, TPMI_RH_HIERARCHY *out)
Definition: tpm_json_deserialize.c:1428
TSS2_RC ifapi_json_TPM2_PT_PCR_deserialize(json_object *jso, TPM2_PT_PCR *out)
Definition: tpm_json_deserialize.c:1052
TSS2_RC ifapi_json_TPMS_ECC_POINT_deserialize(json_object *jso, TPMS_ECC_POINT *out)
Definition: tpm_json_deserialize.c:3626
TSS2_RC ifapi_json_TPMU_ASYM_SCHEME_deserialize(UINT32 selector, json_object *jso, TPMU_ASYM_SCHEME *out)
Definition: tpm_json_deserialize.c:3392
TSS2_RC ifapi_json_TPM2_NT_deserialize(json_object *jso, TPM2_NT *out)
Definition: tpm_json_deserialize.c:4408
TSS2_RC ifapi_json_TPMA_OBJECT_deserialize(json_object *jso, TPMA_OBJECT *out)
Definition: tpm_json_deserialize.c:1126
TSS2_RC ifapi_json_TPMS_SIGNATURE_ECDAA_deserialize(json_object *jso, TPMS_SIGNATURE_ECDAA *out)
Definition: tpm_json_deserialize.c:3880
TSS2_RC ifapi_json_TPMS_SIG_SCHEME_ECDSA_deserialize(json_object *jso, TPMS_SIG_SCHEME_ECDSA *out)
Definition: tpm_json_deserialize.c:3062
TSS2_RC ifapi_json_TPMS_CERTIFY_INFO_deserialize(json_object *jso, TPMS_CERTIFY_INFO *out)
Definition: tpm_json_deserialize.c:2132
TSS2_RC ifapi_json_TPMS_KEYEDHASH_PARMS_deserialize(json_object *jso, TPMS_KEYEDHASH_PARMS *out)
Definition: tpm_json_deserialize.c:4092
TSS2_RC ifapi_json_TPMU_SIGNATURE_deserialize(UINT32 selector, json_object *jso, TPMU_SIGNATURE *out)
Definition: tpm_json_deserialize.c:3930
TSS2_RC ifapi_json_TPM2B_NONCE_deserialize(json_object *jso, TPM2B_NONCE *out)
Definition: tpm_json_deserialize.c:1736
TSS2_RC ifapi_json_TPMS_SIGNATURE_ECSCHNORR_deserialize(json_object *jso, TPMS_SIGNATURE_ECSCHNORR *out)
Definition: tpm_json_deserialize.c:3912
TSS2_RC ifapi_json_TPMT_SYM_DEF_OBJECT_deserialize(json_object *jso, TPMT_SYM_DEF_OBJECT *out)
Definition: tpm_json_deserialize.c:2715
TSS2_RC ifapi_json_TPM2B_NV_PUBLIC_deserialize(json_object *jso, TPM2B_NV_PUBLIC *out)
Definition: tpm_json_deserialize.c:4646
TSS2_RC ifapi_json_TPMS_SIGNATURE_ECDSA_deserialize(json_object *jso, TPMS_SIGNATURE_ECDSA *out)
Definition: tpm_json_deserialize.c:3864
TSS2_RC ifapi_json_TPMS_SCHEME_ECDAA_deserialize(json_object *jso, TPMS_SCHEME_ECDAA *out)
Definition: tpm_json_deserialize.c:2839
TSS2_RC ifapi_json_TPM2_ALG_ID_deserialize(json_object *jso, TPM2_ALG_ID *out)
Definition: tpm_json_deserialize.c:718
TSS2_RC ifapi_json_TPMT_TK_CREATION_deserialize(json_object *jso, TPMT_TK_CREATION *out)
Definition: tpm_json_deserialize.c:1853
TSS2_RC ifapi_json_TPMS_ATTEST_deserialize(json_object *jso, TPMS_ATTEST *out)
Definition: tpm_json_deserialize.c:2482
TSS2_RC ifapi_json_TPMI_ALG_SYM_deserialize(json_object *jso, TPMI_ALG_SYM *out)
Definition: tpm_json_deserialize.c:1487
TSS2_RC ifapi_json_TPMS_ENC_SCHEME_OAEP_deserialize(json_object *jso, TPMS_ENC_SCHEME_OAEP *out)
Definition: tpm_json_deserialize.c:3213
TSS2_RC ifapi_json_TPMS_SIG_SCHEME_RSASSA_deserialize(json_object *jso, TPMS_SIG_SCHEME_RSASSA *out)
Definition: tpm_json_deserialize.c:3028
TSS2_RC ifapi_json_TPMT_SIG_SCHEME_deserialize(json_object *jso, TPMT_SIG_SCHEME *out)
Definition: tpm_json_deserialize.c:3174
TSS2_RC ifapi_json_UINT8_ARY_deserialize(json_object *jso, UINT8_ARY *out)
Definition: tpm_json_deserialize.c:336
TSS2_RC ifapi_json_TPMI_ALG_CIPHER_MODE_deserialize(json_object *jso, TPMI_ALG_CIPHER_MODE *out)
Definition: tpm_json_deserialize.c:1531
TSS2_RC ifapi_json_TPMU_SIG_SCHEME_deserialize(UINT32 selector, json_object *jso, TPMU_SIG_SCHEME *out)
Definition: tpm_json_deserialize.c:3128
TSS2_RC ifapi_json_TPM2B_ENCRYPTED_SECRET_deserialize(json_object *jso, TPM2B_ENCRYPTED_SECRET *out)
Definition: tpm_json_deserialize.c:4014
TSS2_RC ifapi_json_TPMI_ST_ATTEST_deserialize(json_object *jso, TPMI_ST_ATTEST *out)
Definition: tpm_json_deserialize.c:2412
TSS2_RC ifapi_json_TPMS_RSA_PARMS_deserialize(json_object *jso, TPMS_RSA_PARMS *out)
Definition: tpm_json_deserialize.c:4130
TSS2_RC ifapi_json_TPMI_ALG_RSA_DECRYPT_deserialize(json_object *jso, TPMI_ALG_RSA_DECRYPT *out)
Definition: tpm_json_deserialize.c:3493
TSS2_RC ifapi_json_TPMS_ECC_PARMS_deserialize(json_object *jso, TPMS_ECC_PARMS *out)
Definition: tpm_json_deserialize.c:4188
TSS2_RC ifapi_json_TPMI_RH_NV_INDEX_deserialize(json_object *jso, TPMI_RH_NV_INDEX *out)
Definition: tpm_json_deserialize.c:1460
TSS2_RC ifapi_json_TPMT_SYM_DEF_deserialize(json_object *jso, TPMT_SYM_DEF *out)
Definition: tpm_json_deserialize.c:2660
TSS2_RC ifapi_json_TPMS_KEY_SCHEME_ECDH_deserialize(json_object *jso, TPMS_KEY_SCHEME_ECDH *out)
Definition: tpm_json_deserialize.c:3246
TSS2_RC ifapi_json_TPM2B_DATA_deserialize(json_object *jso, TPM2B_DATA *out)
Definition: tpm_json_deserialize.c:1708
TSS2_RC ifapi_json_TPM2B_DIGEST_deserialize(json_object *jso, TPM2B_DIGEST *out)
Definition: tpm_json_deserialize.c:1682
TSS2_RC ifapi_json_TPMS_SIG_SCHEME_ECSCHNORR_deserialize(json_object *jso, TPMS_SIG_SCHEME_ECSCHNORR *out)
Definition: tpm_json_deserialize.c:3094
TSS2_RC ifapi_json_TPMS_SIGNATURE_RSA_deserialize(json_object *jso, TPMS_SIGNATURE_RSA *out)
Definition: tpm_json_deserialize.c:3740
TSS2_RC ifapi_json_TPM2B_OPERAND_deserialize(json_object *jso, TPM2B_OPERAND *out)
Definition: tpm_json_deserialize.c:1753
TSS2_RC ifapi_json_TPMS_SCHEME_KDF1_SP800_56A_deserialize(json_object *jso, TPMS_SCHEME_KDF1_SP800_56A *out)
Definition: tpm_json_deserialize.c:3279
TSS2_RC ifapi_json_TPMS_SESSION_AUDIT_INFO_deserialize(json_object *jso, TPMS_SESSION_AUDIT_INFO *out)
Definition: tpm_json_deserialize.c:2281
TSS2_RC ifapi_json_BYTE_deserialize(json_object *jso, BYTE *out)
Definition: tpm_json_deserialize.c:544
TSS2_RC ifapi_json_TPM2B_CREATION_DATA_deserialize(json_object *jso, TPM2B_CREATION_DATA *out)
Definition: tpm_json_deserialize.c:4771
TSS2_RC ifapi_json_TPMI_YES_NO_deserialize(json_object *jso, TPMI_YES_NO *out)
Definition: tpm_json_deserialize.c:1397
TSS2_RC ifapi_json_TPMU_SCHEME_KEYEDHASH_deserialize(UINT32 selector, json_object *jso, TPMU_SCHEME_KEYEDHASH *out)
Definition: tpm_json_deserialize.c:2951
TSS2_RC ifapi_json_TPMS_CREATION_DATA_deserialize(json_object *jso, TPMS_CREATION_DATA *out)
Definition: tpm_json_deserialize.c:4694
TSS2_RC ifapi_json_TPMS_CLOCK_INFO_deserialize(json_object *jso, TPMS_CLOCK_INFO *out)
Definition: tpm_json_deserialize.c:1991
TSS2_RC ifapi_json_TPMS_SIG_SCHEME_ECDAA_deserialize(json_object *jso, TPMS_SIG_SCHEME_ECDAA *out)
Definition: tpm_json_deserialize.c:3110
TSS2_RC ifapi_json_TPMS_SCHEME_HASH_deserialize(json_object *jso, TPMS_SCHEME_HASH *out)
Definition: tpm_json_deserialize.c:2803
TSS2_RC ifapi_json_TPM2B_ECC_PARAMETER_deserialize(json_object *jso, TPM2B_ECC_PARAMETER *out)
Definition: tpm_json_deserialize.c:3593
TSS2_RC ifapi_hex_to_byte_ary(const char hex[], UINT32 vlen, BYTE val[])
Definition: tpm_json_deserialize.c:117
TSS2_RC ifapi_json_TPMI_ALG_PUBLIC_deserialize(json_object *jso, TPMI_ALG_PUBLIC *out)
Definition: tpm_json_deserialize.c:4040
TSS2_RC ifapi_json_TPMS_TIME_ATTEST_INFO_deserialize(json_object *jso, TPMS_TIME_ATTEST_INFO *out)
Definition: tpm_json_deserialize.c:2089
TSS2_RC ifapi_json_UINT64_deserialize(json_object *jso, UINT64 *out)
Definition: tpm_json_deserialize.c:644
TSS2_RC ifapi_json_TPMI_ALG_KEYEDHASH_SCHEME_deserialize(json_object *jso, TPMI_ALG_KEYEDHASH_SCHEME *out)
Definition: tpm_json_deserialize.c:2874
TSS2_RC ifapi_json_TPMT_KEYEDHASH_SCHEME_deserialize(json_object *jso, TPMT_KEYEDHASH_SCHEME *out)
Definition: tpm_json_deserialize.c:2987
TSS2_RC ifapi_json_TPMI_ALG_SYM_MODE_deserialize(json_object *jso, TPMI_ALG_SYM_MODE *out)
Definition: tpm_json_deserialize.c:1516
TSS2_RC ifapi_json_TPMI_AES_KEY_BITS_deserialize(json_object *jso, TPMI_AES_KEY_BITS *out)
Definition: tpm_json_deserialize.c:2549
TSS2_RC ifapi_json_TPMT_SIGNATURE_deserialize(json_object *jso, TPMT_SIGNATURE *out)
Definition: tpm_json_deserialize.c:3977
TSS2_RC ifapi_json_TPMS_NV_PUBLIC_deserialize(json_object *jso, TPMS_NV_PUBLIC *out)
Definition: tpm_json_deserialize.c:4583
TSS2_RC ifapi_json_TPMI_ALG_RSA_SCHEME_deserialize(json_object *jso, TPMI_ALG_RSA_SCHEME *out)
Definition: tpm_json_deserialize.c:3435
TSS2_RC ifapi_json_TPMU_SYM_KEY_BITS_deserialize(UINT32 selector, json_object *jso, TPMU_SYM_KEY_BITS *out)
Definition: tpm_json_deserialize.c:2588
TSS2_RC ifapi_json_TPMS_PCR_SELECT_deserialize(json_object *jso, TPMS_PCR_SELECT *out)
Definition: tpm_json_deserialize.c:361
TSS2_RC ifapi_json_TPMU_PUBLIC_PARMS_deserialize(UINT32 selector, json_object *jso, TPMU_PUBLIC_PARMS *out)
Definition: tpm_json_deserialize.c:4239
TSS2_RC ifapi_json_TPMS_SCHEME_MGF1_deserialize(json_object *jso, TPMS_SCHEME_MGF1 *out)
Definition: tpm_json_deserialize.c:3264
TSS2_RC ifapi_json_TPMI_ALG_HASH_deserialize(json_object *jso, TPMI_ALG_HASH *out)
Definition: tpm_json_deserialize.c:1473
TSS2_RC ifapi_json_TPMS_EMPTY_deserialize(json_object *jso, TPMS_EMPTY *out)
Definition: tpm_json_deserialize.c:100
TSS2_RC ifapi_json_TPM2B_PUBLIC_KEY_RSA_deserialize(json_object *jso, TPM2B_PUBLIC_KEY_RSA *out)
Definition: tpm_json_deserialize.c:3553
TSS2_RC ifapi_json_TPMT_KDF_SCHEME_deserialize(json_object *jso, TPMT_KDF_SCHEME *out)
Definition: tpm_json_deserialize.c:3353
TSS2_RC ifapi_json_TPMS_SIGNATURE_SM2_deserialize(json_object *jso, TPMS_SIGNATURE_SM2 *out)
Definition: tpm_json_deserialize.c:3896
bool ifapi_get_sub_object(json_object *jso, char *name, json_object **sub_jso)
Definition: tpm_json_deserialize.c:226
TSS2_RC ifapi_json_TPMS_COMMAND_AUDIT_INFO_deserialize(json_object *jso, TPMS_COMMAND_AUDIT_INFO *out)
Definition: tpm_json_deserialize.c:2223
TSS2_RC ifapi_json_TPMS_TIME_INFO_deserialize(json_object *jso, TPMS_TIME_INFO *out)
Definition: tpm_json_deserialize.c:2047
TSS2_RC ifapi_json_TPM2B_MAX_NV_BUFFER_deserialize(json_object *jso, TPM2B_MAX_NV_BUFFER *out)
Definition: tpm_json_deserialize.c:1793
TSS2_RC ifapi_json_TPMU_HA_deserialize(UINT32 selector, json_object *jso, TPMU_HA *out)
Definition: tpm_json_deserialize.c:1579
TSS2_RC ifapi_json_TPMS_CREATION_INFO_deserialize(json_object *jso, TPMS_CREATION_INFO *out)
Definition: tpm_json_deserialize.c:2325
TSS2_RC ifapi_json_TPMS_SIGNATURE_RSASSA_deserialize(json_object *jso, TPMS_SIGNATURE_RSASSA *out)
Definition: tpm_json_deserialize.c:3778
TSS2_RC ifapi_json_TPMU_PUBLIC_ID_deserialize(UINT32 selector, json_object *jso, TPMU_PUBLIC_ID *out)
Definition: tpm_json_deserialize.c:4057
TSS2_RC ifapi_json_TPM2_GENERATED_deserialize(json_object *jso, TPM2_GENERATED *out)
Definition: tpm_json_deserialize.c:688
TSS2_RC ifapi_json_BYTE_array_deserialize(size_t max, json_object *jso, BYTE *out)
Definition: tpm_json_deserialize.c:515
TSS2_RC ifapi_json_TPMU_ATTEST_deserialize(UINT32 selector, json_object *jso, TPMU_ATTEST *out)
Definition: tpm_json_deserialize.c:2431
TSS2_RC ifapi_json_TPMT_HA_deserialize(json_object *jso, TPMT_HA *out)
Definition: tpm_json_deserialize.c:1645
TSS2_RC ifapi_json_TPM2B_NAME_deserialize(json_object *jso, TPM2B_NAME *out)
Definition: tpm_json_deserialize.c:1820
TSS2_RC ifapi_json_TPMS_ENC_SCHEME_RSAES_deserialize(json_object *jso, TPMS_ENC_SCHEME_RSAES *out)
Definition: tpm_json_deserialize.c:3228
TSS2_RC ifapi_json_TPMI_ALG_KDF_deserialize(json_object *jso, TPMI_ALG_KDF *out)
Definition: tpm_json_deserialize.c:1546
TSS2_RC ifapi_json_TPMS_SCHEME_XOR_deserialize(json_object *jso, TPMS_SCHEME_XOR *out)
Definition: tpm_json_deserialize.c:2914
TSS2_RC ifapi_json_TPMS_SYMCIPHER_PARMS_deserialize(json_object *jso, TPMS_SYMCIPHER_PARMS *out)
Definition: tpm_json_deserialize.c:2768
TSS2_RC ifapi_json_TPM2_HANDLE_deserialize(json_object *jso, TPM2_HANDLE *out)
Definition: tpm_json_deserialize.c:1100
TSS2_RC ifapi_json_TPMU_SYM_MODE_deserialize(UINT32 selector, json_object *jso, TPMU_SYM_MODE *out)
Definition: tpm_json_deserialize.c:2622
TSS2_RC ifapi_json_TPML_DIGEST_VALUES_deserialize(json_object *jso, TPML_DIGEST_VALUES *out)
Definition: tpm_json_deserialize.c:1899
TSS2_RC ifapi_json_TPMS_SCHEME_KDF1_SP800_108_deserialize(json_object *jso, TPMS_SCHEME_KDF1_SP800_108 *out)
Definition: tpm_json_deserialize.c:3295
TSS2_RC ifapi_json_TPMI_ALG_SYM_OBJECT_deserialize(json_object *jso, TPMI_ALG_SYM_OBJECT *out)
Definition: tpm_json_deserialize.c:1501
TSS2_RC ifapi_json_TPM2B_EVENT_deserialize(json_object *jso, TPM2B_EVENT *out)
Definition: tpm_json_deserialize.c:1768
TSS2_RC ifapi_json_TPMI_RSA_KEY_BITS_deserialize(json_object *jso, TPMI_RSA_KEY_BITS *out)
Definition: tpm_json_deserialize.c:3577
TSS2_RC ifapi_json_TPMU_KDF_SCHEME_deserialize(UINT32 selector, json_object *jso, TPMU_KDF_SCHEME *out)
Definition: tpm_json_deserialize.c:3313
TSS2_RC ifapi_json_TPMS_PCR_SELECTION_deserialize(json_object *jso, TPMS_PCR_SELECTION *out)
Definition: tpm_json_deserialize.c:385
TSS2_RC ifapi_json_TPM2B_PUBLIC_deserialize(json_object *jso, TPM2B_PUBLIC *out)
Definition: tpm_json_deserialize.c:4351
TSS2_RC ifapi_json_UINT16_deserialize(json_object *jso, UINT16 *out)
Definition: tpm_json_deserialize.c:594
TSS2_RC ifapi_json_TPMS_SCHEME_HMAC_deserialize(json_object *jso, TPMS_SCHEME_HMAC *out)
Definition: tpm_json_deserialize.c:2892
TSS2_RC ifapi_json_TPM2_ST_deserialize(json_object *jso, TPM2_ST *out)
Definition: tpm_json_deserialize.c:1006
TSS2_RC ifapi_json_TPMS_SIGNATURE_ECC_deserialize(json_object *jso, TPMS_SIGNATURE_ECC *out)
Definition: tpm_json_deserialize.c:3819
TSS2_RC ifapi_json_TPMI_ALG_SIG_SCHEME_deserialize(json_object *jso, TPMI_ALG_SIG_SCHEME *out)
Definition: tpm_json_deserialize.c:1560
TSS2_RC ifapi_json_TPMS_NV_CERTIFY_INFO_deserialize(json_object *jso, TPMS_NV_CERTIFY_INFO *out)
Definition: tpm_json_deserialize.c:2370
TSS2_RC ifapi_json_TPMI_ECC_CURVE_deserialize(json_object *jso, TPMI_ECC_CURVE *out)
Definition: tpm_json_deserialize.c:3674
TSS2_RC ifapi_json_TPMI_ALG_ECC_SCHEME_deserialize(json_object *jso, TPMI_ALG_ECC_SCHEME *out)
Definition: tpm_json_deserialize.c:3660
TSS2_RC ifapi_json_TPMS_SIGNATURE_RSAPSS_deserialize(json_object *jso, TPMS_SIGNATURE_RSAPSS *out)
Definition: tpm_json_deserialize.c:3794
TSS2_RC ifapi_json_TPMT_RSA_SCHEME_deserialize(json_object *jso, TPMT_RSA_SCHEME *out)
Definition: tpm_json_deserialize.c:3457
TSS2_RC ifapi_json_TPM2_ECC_CURVE_deserialize(json_object *jso, TPM2_ECC_CURVE *out)
Definition: tpm_json_deserialize.c:783
TSS2_RC ifapi_json_TPM2_CC_deserialize(json_object *jso, TPM2_CC *out)
Definition: tpm_json_deserialize.c:821
TSS2_RC ifapi_json_TPMT_ECC_SCHEME_deserialize(json_object *jso, TPMT_ECC_SCHEME *out)
Definition: tpm_json_deserialize.c:3697
TSS2_RC ifapi_json_TPM2_EO_deserialize(json_object *jso, TPM2_EO *out)
Definition: tpm_json_deserialize.c:965
TSS2_RC ifapi_json_TPMS_SIG_SCHEME_SM2_deserialize(json_object *jso, TPMS_SIG_SCHEME_SM2 *out)
Definition: tpm_json_deserialize.c:3078
TSS2_RC ifapi_json_TPMT_PUBLIC_deserialize(json_object *jso, TPMT_PUBLIC *out)
Definition: tpm_json_deserialize.c:4282
TSS2_RC ifapi_json_TPM2B_PRIVATE_deserialize(json_object *jso, TPM2B_PRIVATE *out)
Definition: tpm_json_deserialize.c:4382
TSS2_RC ifapi_json_TPMA_NV_deserialize(json_object *jso, TPMA_NV *out)
Definition: tpm_json_deserialize.c:4444
TSS2_RC ifapi_json_TPML_PCR_SELECTION_deserialize(json_object *jso, TPML_PCR_SELECTION *out)
Definition: tpm_json_deserialize.c:1940
TSS2_RC ifapi_json_TPMT_RSA_DECRYPT_deserialize(json_object *jso, TPMT_RSA_DECRYPT *out)
Definition: tpm_json_deserialize.c:3515
TSS2_RC ifapi_json_TPMS_QUOTE_INFO_deserialize(json_object *jso, TPMS_QUOTE_INFO *out)
Definition: tpm_json_deserialize.c:2176
TSS2_RC ifapi_json_TPMS_SIG_SCHEME_RSAPSS_deserialize(json_object *jso, TPMS_SIG_SCHEME_RSAPSS *out)
Definition: tpm_json_deserialize.c:3044
TSS2_RC ifapi_json_TPMA_LOCALITY_deserialize(json_object *jso, TPMA_LOCALITY *out)
Definition: tpm_json_deserialize.c:1216
Definition: fapi_types.h:15