1 /* SPDX-License-Identifier: BSD-2-Clause */
2 /*******************************************************************************
3  * Copyright 2017-2018, Fraunhofer SIT sponsored by Infineon Technologies AG
4  * All rights reserved.
5  ******************************************************************************/
6 #ifndef ESYS_MU_H
7 #define ESYS_MU_H
8 
9 #include "tss2_mu.h"
10 
11 #include "esys_types.h"
12 
13 #ifndef FALSE
14 #define FALSE 0
15 #endif
16 #ifndef TRUE
17 #define TRUE 1
18 #endif
19 #define ESYS_MAX_SIZE_METADATA 3072
20 
21 #ifdef __cplusplus
22 extern "C" {
23 #endif
24 
25 TSS2_RC
26 iesys_MU_IESYSC_PARAM_ENCRYPT_Marshal(
27     const IESYSC_PARAM_ENCRYPT in,
28     uint8_t *buffer,
29     size_t size,
30     size_t *offset);
31 
32 TSS2_RC
33 iesys_MU_IESYSC_PARAM_ENCRYPT_Unmarshal(
34     const uint8_t *buffer,
35     size_t size,
36     size_t *offset,
37     IESYSC_PARAM_ENCRYPT *out);
38 
39 TSS2_RC
40 iesys_MU_IESYSC_PARAM_ENCRYPT_check(
41     const IESYSC_PARAM_ENCRYPT *in);
42 
43 TSS2_RC
44 iesys_MU_IESYSC_PARAM_DECRYPT_Marshal(
45     const IESYSC_PARAM_DECRYPT in,
46     uint8_t *buffer,
47     size_t size,
48     size_t *offset);
49 
50 TSS2_RC
51 iesys_MU_IESYSC_PARAM_DECRYPT_Unmarshal(
52     const uint8_t *buffer,
53     size_t size,
54     size_t *offset,
55     IESYSC_PARAM_DECRYPT *out);
56 
57 TSS2_RC
58 iesys_MU_IESYSC_PARAM_DECRYPT_check(
59     const IESYSC_PARAM_DECRYPT *in);
60 
61 TSS2_RC
62 iesys_MU_IESYSC_TYPE_POLICY_AUTH_Marshal(
63     const IESYSC_TYPE_POLICY_AUTH in,
64     uint8_t *buffer,
65     size_t size,
66     size_t *offset);
67 
68 TSS2_RC
69 iesys_MU_IESYSC_TYPE_POLICY_AUTH_Unmarshal(
70     const uint8_t *buffer,
71     size_t size,
72     size_t *offset,
73     IESYSC_TYPE_POLICY_AUTH *out);
74 
75 TSS2_RC
76 iesys_MU_IESYSC_TYPE_POLICY_AUTH_check(
77     const IESYSC_TYPE_POLICY_AUTH *in);
78 
79 TSS2_RC
80 iesys_MU_IESYS_SESSION_Marshal(
81     const IESYS_SESSION *in,
82     uint8_t *buffer,
83     size_t size,
84     size_t *offset);
85 
86 TSS2_RC
87 iesys_MU_IESYS_SESSION_Unmarshal(const uint8_t *buffer,
88     size_t size,
89     size_t *offset,
90     IESYS_SESSION *out);
91 
92 
93 TSS2_RC
94 iesys_MU_IESYSC_RESOURCE_TYPE_Marshal(
95     const IESYSC_RESOURCE_TYPE in,
96     uint8_t *buffer,
97     size_t size,
98     size_t *offset);
99 
100 TSS2_RC
101 iesys_MU_IESYSC_RESOURCE_TYPE_Unmarshal(
102     const uint8_t *buffer,
103     size_t size,
104     size_t *offset,
105     IESYSC_RESOURCE_TYPE *out);
106 
107 TSS2_RC
108 iesys_MU_IESYSC_RESOURCE_TYPE_check(
109     const IESYSC_RESOURCE_TYPE *in);
110 
111 TSS2_RC
112 iesys_MU_IESYS_RSRC_UNION_Marshal(
113     const IESYS_RSRC_UNION *in,
114     UINT32 selector,
115     uint8_t *buffer,
116     size_t size,
117     size_t *offset);
118 
119 TSS2_RC
120 iesys_MU_IESYS_RSRC_UNION_Unmarshal(
121     const uint8_t *buffer,
122     size_t size,
123     size_t *offset,
124     UINT32 selector,
125     IESYS_RSRC_UNION *out);
126 
127 
128 TSS2_RC
129 iesys_MU_IESYS_RESOURCE_Marshal(
130     const IESYS_RESOURCE *in,
131     uint8_t *buffer,
132     size_t size,
133     size_t *offset);
134 
135 TSS2_RC
136 iesys_MU_IESYS_RESOURCE_Unmarshal(const uint8_t *buffer,
137     size_t size,
138     size_t *offset,
139     IESYS_RESOURCE *out);
140 
141 
142 TSS2_RC
143 iesys_MU_IESYS_METADATA_Marshal(
144     const IESYS_METADATA *in,
145     uint8_t *buffer,
146     size_t size,
147     size_t *offset);
148 
149 TSS2_RC
150 iesys_MU_IESYS_METADATA_Unmarshal(const uint8_t *buffer,
151     size_t size,
152     size_t *offset,
153     IESYS_METADATA *out);
154 
155 
156 TSS2_RC
157 iesys_MU_IESYS_CONTEXT_DATA_Marshal(
158     const IESYS_CONTEXT_DATA *in,
159     uint8_t *buffer,
160     size_t size,
161     size_t *offset);
162 
163 TSS2_RC
164 iesys_MU_IESYS_CONTEXT_DATA_Unmarshal(const uint8_t *buffer,
165     size_t size,
166     size_t *offset,
167     IESYS_CONTEXT_DATA *out);
168 
169 
170 #ifdef __cplusplus
171 }
172 #endif
173 
174 #endif /* ESYS_MU_H */
175