tpm2-tss 3.2.1
TPM Software stack 2.0 TCG spec compliant implementation
ifapi_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 IFAPI_JSON_DESERIALIZE_H
7#define IFAPI_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 "ifapi_keystore.h"
15#include "fapi_int.h"
16
17#define YES 1
18#define NO 0
19
20#define GET_OPTIONAL(name, json_name, type) \
21 if (!ifapi_get_sub_object(jso, json_name, &jso2)) { \
22 memset(&out->name, 0, sizeof(type)); \
23 } else { \
24 r = ifapi_json_ ## type ## _deserialize (jso2, &out->name); \
25 return_if_error2(r, "Bad value for field \"%s\".", json_name); \
26 }
27
28bool
29ifapi_get_sub_object(json_object *jso, char *name, json_object **sub_jso);
30
31TSS2_RC
32ifapi_json_char_deserialize(json_object *jso, char **out);
33
34TSS2_RC
35ifapi_json_IFAPI_KEY_deserialize(json_object *jso, IFAPI_KEY *out);
36
37TSS2_RC
39
40TSS2_RC
43
44TSS2_RC
45ifapi_json_IFAPI_NV_deserialize(json_object *jso, IFAPI_NV *out);
46
47TSS2_RC
49
50TSS2_RC
52
53TSS2_RC
55
56TSS2_RC
58 IFAPI_EVENT_TYPE *out);
59
60TSS2_RC
62 IFAPI_EVENT_TYPE *out);
63
64TSS2_RC
66
67TSS2_RC
69
70TSS2_RC
71ifapi_json_IFAPI_EVENT_UNION_deserialize(UINT32 selector, json_object *jso,
73
74TSS2_RC
76
77#endif /* IFAPI_JSON_DESERIALIZE_H */
TSS2_RC ifapi_json_IFAPI_IMA_EVENT_deserialize(json_object *jso, IFAPI_IMA_EVENT *out)
Definition: ifapi_json_deserialize.c:869
TSS2_RC ifapi_json_IFAPI_EVENT_deserialize(json_object *jso, IFAPI_EVENT *out)
Definition: ifapi_json_deserialize.c:943
TSS2_RC ifapi_json_IFAPI_EVENT_TYPE_deserialize(json_object *jso, IFAPI_EVENT_TYPE *out)
Definition: ifapi_json_deserialize.c:748
TSS2_RC ifapi_json_IFAPI_OBJECT_deserialize(json_object *jso, IFAPI_OBJECT *out)
Definition: ifapi_json_deserialize.c:663
TSS2_RC ifapi_json_IFAPI_EVENT_TYPE_deserialize_txt(json_object *jso, IFAPI_EVENT_TYPE *out)
Definition: ifapi_json_deserialize.c:772
TSS2_RC ifapi_json_IFAPI_TSS_EVENT_deserialize(json_object *jso, IFAPI_TSS_EVENT *out)
Definition: ifapi_json_deserialize.c:821
TSS2_RC ifapi_json_char_deserialize(json_object *jso, char **out)
Definition: ifapi_json_deserialize.c:87
TSS2_RC ifapi_json_FAPI_QUOTE_INFO_deserialize(json_object *jso, FAPI_QUOTE_INFO *out)
Definition: ifapi_json_deserialize.c:525
bool ifapi_get_sub_object(json_object *jso, char *name, json_object **sub_jso)
Definition: tpm_json_deserialize.c:243
TSS2_RC ifapi_json_IFAPI_KEY_deserialize(json_object *jso, IFAPI_KEY *out)
Definition: ifapi_json_deserialize.c:106
TSS2_RC ifapi_json_import_IFAPI_KEY_deserialize(json_object *jso, IFAPI_KEY *out)
Definition: ifapi_json_deserialize.c:255
TSS2_RC ifapi_json_IFAPI_HIERARCHY_deserialize(json_object *jso, IFAPI_HIERARCHY *out)
Definition: ifapi_json_deserialize.c:470
TSS2_RC ifapi_json_IFAPI_EXT_PUB_KEY_deserialize(json_object *jso, IFAPI_EXT_PUB_KEY *out)
Definition: ifapi_json_deserialize.c:347
TSS2_RC ifapi_json_IFAPI_EVENT_UNION_deserialize(UINT32 selector, json_object *jso, IFAPI_EVENT_UNION *out)
Definition: ifapi_json_deserialize.c:907
TSS2_RC ifapi_json_IFAPI_NV_deserialize(json_object *jso, IFAPI_NV *out)
Definition: ifapi_json_deserialize.c:391
Definition: ifapi_keystore.h:145
Definition: fapi_int.h:190
Definition: ifapi_eventlog.h:43
Definition: ifapi_keystore.h:50
Definition: ifapi_keystore.h:58
Definition: ifapi_eventlog.h:29
Definition: ifapi_keystore.h:28
Definition: ifapi_keystore.h:69
Definition: ifapi_eventlog.h:22
Definition: ifapi_eventlog.h:36