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