6#ifndef IFAPI_JSON_DESERIALIZE_H
7#define IFAPI_JSON_DESERIALIZE_H
10#include <json-c/json.h>
11#include <json-c/json_util.h>
13#include "tss2_tpm2_types.h"
14#include "ifapi_keystore.h"
16#include "ifapi_eventlog_system.h"
21#define GET_OPTIONAL(name, json_name, type) \
22 if (!ifapi_get_sub_object(jso, json_name, &jso2)) { \
23 memset(&out->name, 0, sizeof(type)); \
25 r = ifapi_json_ ## type ## _deserialize (jso2, &out->name); \
26 return_if_error2(r, "Bad value for field \"%s\".", json_name); \
35#define GET_CONDITIONAL_TPM2B(name, json_name, tpm2b_type, type, field_name, cond_cnt) \
36 if (!ifapi_get_sub_object(jso, json_name, &jso2)) { \
37 memset(&out->name, 0, sizeof(type)); \
40 json_object* jso_size; \
41 if (ifapi_get_sub_object(jso2, "size", &jso_size)) { \
42 tpm2b_type tmp = { 0 }; \
43 r = ifapi_json_ ## tpm2b_type ## _deserialize (jso2, &tmp); \
44 return_if_error2(r, "Bad value for field \"%s\".", json_name); \
45 out->name = tmp.field_name; \
47 r = ifapi_json_ ## type ## _deserialize (jso2, &out->name); \
48 return_if_error2(r, "Bad value for field \"%s\".", json_name); \
53ifapi_get_sub_object(json_object *jso,
char *name, json_object **sub_jso);
56ifapi_json_char_deserialize(json_object *jso,
char **out);
59ifapi_json_IFAPI_KEY_deserialize(json_object *jso,
IFAPI_KEY *out);
62ifapi_json_import_IFAPI_KEY_deserialize(json_object *jso,
IFAPI_KEY *out);
65ifapi_json_IFAPI_EXT_PUB_KEY_deserialize(json_object *jso,
69ifapi_json_IFAPI_NV_deserialize(json_object *jso,
IFAPI_NV *out);
72ifapi_json_IFAPI_HIERARCHY_deserialize(json_object *jso,
IFAPI_HIERARCHY *out);
75ifapi_json_IFAPI_OBJECT_deserialize(json_object *jso,
IFAPI_OBJECT *out);
78ifapi_json_FAPI_QUOTE_INFO_deserialize(json_object *jso,
FAPI_QUOTE_INFO *out);
81ifapi_json_IFAPI_EVENT_TYPE_deserialize(json_object *jso,
82 IFAPI_EVENT_TYPE *out);
85ifapi_json_IFAPI_EVENT_TYPE_deserialize_txt(json_object *jso,
86 IFAPI_EVENT_TYPE *out);
89ifapi_json_IFAPI_TSS_EVENT_deserialize(json_object *jso,
93ifapi_json_IFAPI_EVENT_UNION_deserialize(
99enum IFAPI_EVENT_ERROR_HANDLING {
100 DIGEST_CHECK_WARNING = 0,
106ifapi_json_IFAPI_EVENT_deserialize(json_object *jso,
IFAPI_EVENT *out,
107 enum IFAPI_EVENT_ERROR_HANDLING error_handling);
110ifapi_json_TPMS_EVENT_CELMGT_deserialize(json_object *jso,
TPMS_EVENT_CELMGT *out);
Definition ifapi_keystore.h:150
Definition fapi_int.h:190
Definition ifapi_eventlog.h:77
Definition ifapi_keystore.h:53
Definition ifapi_keystore.h:61
Definition ifapi_keystore.h:29
Definition ifapi_keystore.h:72
Definition ifapi_eventlog.h:60
Definition ifapi_eventlog.h:53
Definition ifapi_eventlog.h:67