Upgrade Duplicate utility to the latest tss
[aaf/sshsm.git] / tpm-util / duplicate / include / marshal.h
1 /*
2  * Copyright 2018 Intel Corporation
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  *     Unless required by applicable law or agreed to in writing, software
11  *     distributed under the License is distributed on an "AS IS" BASIS,
12  *     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  *     See the License for the specific language governing permissions and
14  *     limitations under the License.
15  */
16 // Author: Arun Kumar Sekar
17 #include <tss2/tss2_sys.h>
18 #include <tss2/tss2_common.h>
19 #include <tss2/tss2_esys.h>
20 #include <tss2/tss2_mu.h>
21 #include <tss2/tss2_tcti.h>
22 #include <tss2/tss2_tcti_mssim.h>
23 #include <tss2/tss2_tpm2_types.h>
24 #include <tss2/tpm2b.h>
25 #include <stdlib.h>
26
27 #ifndef __MARSHAL_H__
28 #define __MARSHAL_H__
29
30 #define pAssert(a)  ((void)0)
31 #define UNREFERENCED(a) ((void)(a))
32
33 #define MAX_NV_INDEX_SIZE               2048
34 UINT16  size;
35 BYTE    buffer[1];
36
37 #define TRUE    1
38 #define FALSE   0
39 #define YES     1
40 #define NO      0
41
42 #if NO_AUTO_ALIGN == YES || LITTLE_ENDIAN_TPM2_ == YES
43 #define BYTE_ARRAY_TO_UINT8(b)   (UINT8)((b)[0])
44
45 #define BYTE_ARRAY_TO_UINT16(b)  (UINT16)(  ((b)[0] <<  8) \
46                                           +  (b)[1])
47
48 #define BYTE_ARRAY_TO_UINT32(b)  (UINT32)(  ((b)[0] << 24) \
49                                           + ((b)[1] << 16) \
50                                           + ((b)[2] << 8 ) \
51                                           +  (b)[3])
52
53 #define BYTE_ARRAY_TO_UINT64(b)  (UINT64)(  ((UINT64)(b)[0] << 56) \
54                                           + ((UINT64)(b)[1] << 48) \
55                                           + ((UINT64)(b)[2] << 40) \
56                                           + ((UINT64)(b)[3] << 32) \
57                                           + ((UINT64)(b)[4] << 24) \
58                                           + ((UINT64)(b)[5] << 16) \
59                                           + ((UINT64)(b)[6] <<  8) \
60                                           +  (UINT64)(b)[7])
61
62 // Disaggregate a UINT into a byte array
63 #define UINT8_TO_BYTE_ARRAY(i, b)     ((b)[0] = (BYTE)(i), i)
64
65 #define UINT16_TO_BYTE_ARRAY(i, b)    ((b)[0] = (BYTE)((i) >>  8), \
66                                        (b)[1] = (BYTE) (i),        \
67                                        (i))
68
69 #define UINT32_TO_BYTE_ARRAY(i, b)    ((b)[0] = (BYTE)((i) >> 24), \
70                                        (b)[1] = (BYTE)((i) >> 16), \
71                                        (b)[2] = (BYTE)((i) >>  8), \
72                                        (b)[3] = (BYTE) (i),        \
73                                        (i))
74
75 #define UINT64_TO_BYTE_ARRAY(i, b)    ((b)[0] = (BYTE)((i) >> 56), \
76                                        (b)[1] = (BYTE)((i) >> 48), \
77                                        (b)[2] = (BYTE)((i) >> 40), \
78                                        (b)[3] = (BYTE)((i) >> 32), \
79                                        (b)[4] = (BYTE)((i) >> 24), \
80                                        (b)[5] = (BYTE)((i) >> 16), \
81                                        (b)[6] = (BYTE)((i) >>  8), \
82                                        (b)[7] = (BYTE) (i),        \
83                                        (i))
84
85 #else
86
87 // the big-endian macros for machines that allow unaligned memory access
88 // Aggregate a byte array into a UINT
89 #define BYTE_ARRAY_TO_UINT8(b)        *((UINT8  *)(b))
90 #define BYTE_ARRAY_TO_UINT16(b)       *((UINT16 *)(b))
91 #define BYTE_ARRAY_TO_UINT32(b)       *((UINT32 *)(b))
92 #define BYTE_ARRAY_TO_UINT64(b)       *((UINT64 *)(b))
93
94 // Disaggregate a UINT into a byte array
95
96
97 #define UINT8_TO_BYTE_ARRAY(i, b)   (*((UINT8  *)(b)) = (i))
98 #define UINT16_TO_BYTE_ARRAY(i, b)  (*((UINT16 *)(b)) = (i))
99 #define UINT32_TO_BYTE_ARRAY(i, b)  (*((UINT32 *)(b)) = (i))
100 #define UINT64_TO_BYTE_ARRAY(i, b)  (*((UINT64 *)(b)) = (i))
101
102
103 #endif  // NO_AUTO_ALIGN == YES
104
105
106
107
108 // Table 2:3 - Definition of Base Types (BaseTypes)
109 //   UINT8 definition from table 2:3
110 TPM2_RC
111 UINT8_Unmarshal(UINT8 *target, BYTE **buffer, INT32 *size);
112 UINT16
113 UINT8_Marshal(UINT8 *source, BYTE **buffer, INT32 *size);
114
115 //   BYTE definition from table 2:3
116 #define BYTE_Unmarshal(target, buffer, size) \
117             UINT8_Unmarshal((UINT8 *)(target), buffer, size)
118 #define BYTE_Marshal(source, buffer, size) \
119             UINT8_Marshal((UINT8 *)(source), buffer, size)
120 //   INT8 definition from table 2:3
121 #define INT8_Unmarshal(target, buffer, size) \
122             UINT8_Unmarshal((UINT8 *)(target), buffer, size)
123 //     INT8_Marshal not referenced
124 //   UINT16 definition from table 2:3
125 TPM2_RC
126 UINT16_Unmarshal(UINT16 *target, BYTE **buffer, INT32 *size);
127 UINT16
128 UINT16_Marshal(UINT16 *source, BYTE **buffer, INT32 *size);
129
130 //   INT16 definition from table 2:3
131 //     INT16_Unmarshal not referenced
132 //     INT16_Marshal not referenced
133 //   UINT32 definition from table 2:3
134 TPM2_RC
135 UINT32_Unmarshal(UINT32 *target, BYTE **buffer, INT32 *size);
136 UINT16
137 UINT32_Marshal(UINT32 *source, BYTE **buffer, INT32 *size);
138
139 //   INT32 definition from table 2:3
140 #define INT32_Unmarshal(target, buffer, size) \
141             UINT32_Unmarshal((UINT32 *)(target), buffer, size)
142 //     INT32_Marshal not referenced
143 //   UINT64 definition from table 2:3
144 TPM2_RC
145 UINT64_Unmarshal(UINT64 *target, BYTE **buffer, INT32 *size);
146 UINT16
147 UINT64_Marshal(UINT64 *source, BYTE **buffer, INT32 *size);
148
149 //   INT64 definition from table 2:3
150 //     INT64_Unmarshal not referenced
151 //     INT64_Marshal not referenced
152
153
154 // Table 2:4 - Defines for Logic Values (DefinesTable)
155
156
157 // Table 2:5 - Definition of Types for Documentation Clarity (TypesTable)
158 //   UINT32 definition from table 2:5
159 //     TPM2_ALGORITHM_ID_Unmarshal not referenced
160 //     TPM2_ALGORITHM_ID_Marshal not referenced
161 //   UINT32 definition from table 2:5
162 //     TPM2_MODIFIER_INDICATOR_Unmarshal not referenced
163 //     TPM2_MODIFIER_INDICATOR_Marshal not referenced
164 //   UINT32 definition from table 2:5
165 //     TPM2_AUTHORIZATION_SIZE_Unmarshal not referenced
166 //     TPM2_AUTHORIZATION_SIZE_Marshal not referenced
167 //   UINT32 definition from table 2:5
168 //     TPM2_PARAMETER_SIZE_Unmarshal not referenced
169 //     TPM2_PARAMETER_SIZE_Marshal not referenced
170 //   UINT16 definition from table 2:5
171 //     TPM2_KEY_SIZE_Unmarshal not referenced
172 //     TPM2_KEY_SIZE_Marshal not referenced
173 //   UINT16 definition from table 2:5
174 #define TPM_KEY_BITS_Unmarshal(target, buffer, size) \
175             UINT16_Unmarshal((UINT16 *)(target), buffer, size)
176 #define TPM_KEY_BITS_Marshal(source, buffer, size) \
177             UINT16_Marshal((UINT16 *)(source), buffer, size)
178
179
180 // Table 2:6 - Definition of TPM2_SPEC Constants  (ConstantsTable)
181 //     TPM2_SPEC_Unmarshal not referenced
182 //     TPM2_SPEC_Marshal not referenced
183
184
185 // Table 2:7 - Definition of TPM2_GENERATED Constants  (ConstantsTable)
186 //     TPM2_GENERATED_Unmarshal not referenced
187 #define TPM_GENERATED_Marshal(source, buffer, size) \
188             UINT32_Marshal((UINT32 *)(source), buffer, size)
189
190
191 // Table 2:9 - Definition of TPM_ALG_ID Constants  (ConstantsTable)
192 #define TPM2_ALG_ID_Unmarshal(target, buffer, size) \
193             UINT16_Unmarshal((UINT16 *)(target), buffer, size)
194 #define TPM2_ALG_ID_Marshal(source, buffer, size) \
195             UINT16_Marshal((UINT16 *)(source), buffer, size)
196
197
198 // Table 2:10 - Definition of TPM_ECC_CURVE Constants  (ConstantsTable)
199 #ifdef    TPM2_ALG_ECC
200 #define TPM_ECC_CURVE_Unmarshal(target, buffer, size) \
201             UINT16_Unmarshal((UINT16 *)(target), buffer, size)
202 #define TPM_ECC_CURVE_Marshal(source, buffer, size) \
203             UINT16_Marshal((UINT16 *)(source), buffer, size)
204 #endif // TPM2_ALG_ECC
205
206
207 // Table 2:13 - Definition of TPM_CC Constants  (ConstantsTable)
208 #define TPM_CC_Unmarshal(target, buffer, size) \
209             UINT32_Unmarshal((UINT32 *)(target), buffer, size)
210 #define TPM_CC_Marshal(source, buffer, size) \
211             UINT32_Marshal((UINT32 *)(source), buffer, size)
212
213
214 // Table 2:17 - Definition of TPM_RC Constants  (ConstantsTable)
215 //     TPM_RC_Unmarshal not referenced
216 #define TPM_RC_Marshal(source, buffer, size) \
217             UINT32_Marshal((UINT32 *)(source), buffer, size)
218
219
220 // Table 2:18 - Definition of TPM_CLOCK_ADJUST Constants  (ConstantsTable)
221 TPM2_RC
222 TPM_CLOCK_ADJUST_Unmarshal(TPM2_CLOCK_ADJUST *target, BYTE **buffer, INT32 *size);
223
224 //     TPM_CLOCK_ADJUST_Marshal not referenced
225
226
227 // Table 2:19 - Definition of TPM_EO Constants  (ConstantsTable)
228 TPM2_RC
229 TPM_EO_Unmarshal(TPM2_EO *target, BYTE **buffer, INT32 *size);
230
231 //     TPM_EO_Marshal not referenced
232
233
234 // Table 2:20 - Definition of TPM_ST Constants  (ConstantsTable)
235 #define TPM_ST_Unmarshal(target, buffer, size) \
236             UINT16_Unmarshal((UINT16 *)(target), buffer, size)
237 #define TPM_ST_Marshal(source, buffer, size) \
238             UINT16_Marshal((UINT16 *)(source), buffer, size)
239
240
241 // Table 2:21 - Definition of TPM_SU Constants  (ConstantsTable)
242 TPM2_RC
243 TPM_SU_Unmarshal(TPM2_SU *target, BYTE **buffer, INT32 *size);
244
245 //     TPM_SU_Marshal not referenced
246
247
248 // Table 2:22 - Definition of TPM_SE Constants  (ConstantsTable)
249 TPM2_RC
250 TPM_SE_Unmarshal(TPM2_SE *target, BYTE **buffer, INT32 *size);
251
252 //     TPM_SE_Marshal not referenced
253
254
255 // Table 2:23 - Definition of TPM_CAP Constants (ConstantsTable)
256 TPM2_RC
257 TPM_CAP_Unmarshal(TPM2_CAP *target, BYTE **buffer, INT32 *size);
258
259 #define TPM_CAP_Marshal(source, buffer, size) \
260             UINT32_Marshal((UINT32 *)(source), buffer, size)
261
262
263 // Table 2:24 - Definition of TPM_PT Constants  (ConstantsTable)
264 //     TPM_PT_Unmarshal not referenced
265 #define TPM_PT_Marshal(source, buffer, size) \
266             UINT32_Marshal((UINT32 *)(source), buffer, size)
267
268
269 // Table 2:25 - Definition of TPM_PT_PCR Constants  (ConstantsTable)
270 //     TPM_PT_PCR_Unmarshal not referenced
271 //     TPM_PT_PCR_Marshal not referenced
272
273
274 // Table 2:26 - Definition of TPM_PS Constants  (ConstantsTable)
275 //     TPM_PS_Unmarshal not referenced
276 //     TPM_PS_Marshal not referenced
277
278
279 // Table 2:27 - Definition of Types for Handles (TypesTable)
280 //   UINT32 definition from table 2:27
281 #define TPM_HANDLE_Unmarshal(target, buffer, size) \
282             UINT32_Unmarshal((UINT32 *)(target), buffer, size)
283 #define TPM_HANDLE_Marshal(source, buffer, size) \
284             UINT32_Marshal((UINT32 *)(source), buffer, size)
285
286
287 // Table 2:28 - Definition of TPM_HT Constants  (ConstantsTable)
288 //     TPM_HT_Unmarshal not referenced
289 //     TPM_HT_Marshal not referenced
290
291
292 // Table 2:29 - Definition of TPM_RH Constants  (ConstantsTable)
293 //     TPM_RH_Unmarshal not referenced
294 //     TPM_RH_Marshal not referenced
295
296
297 // Table 2:30 - Definition of TPM_HC Constants  (ConstantsTable)
298 //     TPM_HC_Unmarshal not referenced
299 //     TPM_HC_Marshal not referenced
300
301
302 // Table 2:31 - Definition of TPMA_ALGORITHM Bits (BitsTable)
303 //     TPMA_ALGORITHM_Unmarshal not referenced
304 #define TPMA_ALGORITHM_Marshal(source, buffer, size) \
305             UINT32_Marshal((UINT32 *)(source), buffer, size)
306
307
308 // Table 2:32 - Definition of TPMA_OBJECT Bits (BitsTable)
309 TPM2_RC
310 TPMA_OBJECT_Unmarshal(TPMA_OBJECT *target, BYTE **buffer, INT32 *size);
311
312 #define TPMA_OBJECT_Marshal(source, buffer, size) \
313             UINT32_Marshal((UINT32 *)(source), buffer, size)
314
315
316 // Table 2:33 - Definition of TPMA_SESSION Bits  (BitsTable)
317 TPM2_RC
318 TPMA_SESSION_Unmarshal(TPMA_SESSION *target, BYTE **buffer, INT32 *size);
319
320 #define TPMA_SESSION_Marshal(source, buffer, size) \
321             UINT8_Marshal((UINT8 *)(source), buffer, size)
322
323
324 // Table 2:34 - Definition of TPMA_LOCALITY Bits  (BitsTable)
325 #define TPMA_LOCALITY_Unmarshal(target, buffer, size) \
326             UINT8_Unmarshal((UINT8 *)(target), buffer, size)
327 #define TPMA_LOCALITY_Marshal(source, buffer, size) \
328             UINT8_Marshal((UINT8 *)(source), buffer, size)
329
330
331 // Table 2:35 - Definition of TPMA_PERMANENT Bits  (BitsTable)
332 //     TPMA_PERMANENT_Unmarshal not referenced
333 //     TPMA_PERMANENT_Marshal not referenced
334
335
336 // Table 2:36 - Definition of TPMA_STARTUP_CLEAR Bits  (BitsTable)
337 //     TPMA_STARTUP_CLEAR_Unmarshal not referenced
338 //     TPMA_STARTUP_CLEAR_Marshal not referenced
339
340
341 // Table 2:37 - Definition of TPMA_MEMORY Bits  (BitsTable)
342 //     TPMA_MEMORY_Unmarshal not referenced
343 //     TPMA_MEMORY_Marshal not referenced
344
345
346 // Table 2:38 - Definition of TPMA_CC Bits  (BitsTable)
347 //     TPMA_CC_Unmarshal not referenced
348 #define TPMA_CC_Marshal(source, buffer, size) \
349             UINT32_Marshal((UINT32 *)(source), buffer, size)
350
351
352 // Table 2:39 - Definition of TPMI_YES_NO Type (TypeTable)
353 TPM2_RC
354 TPMI_YES_NO_Unmarshal(TPMI_YES_NO *target, BYTE **buffer, INT32 *size);
355
356 #define TPMI_YES_NO_Marshal(source, buffer, size) \
357             BYTE_Marshal((BYTE *)(source), buffer, size)
358
359
360 // Table 2:40 - Definition of TPMI_DH_OBJECT Type  (TypeTable)
361 TPM2_RC
362 TPMI_DH_OBJECT_Unmarshal(TPMI_DH_OBJECT *target, BYTE **buffer, INT32 *size, BOOL flag);
363
364 #define TPMI_DH_OBJECT_Marshal(source, buffer, size) \
365             TPM_HANDLE_Marshal((TPM2_HANDLE *)(source), buffer, size)
366
367
368 // Table 2:41 - Definition of TPMI_DH_PERSISTENT Type  (TypeTable)
369 TPM2_RC
370 TPMI_DH_PERSISTENT_Unmarshal(TPMI_DH_PERSISTENT *target, BYTE **buffer, INT32 *size);
371
372 //     TPMI_DH_PERSISTENT_Marshal not referenced
373
374
375 // Table 2:42 - Definition of TPMI_DH_ENTITY Type  (TypeTable)
376 TPM2_RC
377 TPMI_DH_ENTITY_Unmarshal(TPMI_DH_ENTITY *target, BYTE **buffer, INT32 *size, BOOL flag);
378
379 //     TPMI_DH_ENTITY_Marshal not referenced
380
381
382 // Table 2:43 - Definition of TPMI_DH_PCR Type  (TypeTable)
383 TPM2_RC
384 TPMI_DH_PCR_Unmarshal(TPMI_DH_PCR *target, BYTE **buffer, INT32 *size, BOOL flag);
385
386 //     TPMI_DH_PCR_Marshal not referenced
387
388
389 // Table 2:44 - Definition of TPMI_SH_AUTH_SESSION Type  (TypeTable)
390 TPM2_RC
391 TPMI_SH_AUTH_SESSION_Unmarshal(TPMI_SH_AUTH_SESSION *target, BYTE **buffer, INT32 *size, BOOL flag);
392
393 #define TPMI_SH_AUTH_SESSION_Marshal(source, buffer, size) \
394             TPM_HANDLE_Marshal((TPM2_HANDLE *)(source), buffer, size)
395
396
397 // Table 2:45 - Definition of TPMI_SH_HMAC Type  (TypeTable)
398 TPM2_RC
399 TPMI_SH_HMAC_Unmarshal(TPMI_SH_HMAC *target, BYTE **buffer, INT32 *size);
400
401 //     TPMI_SH_HMAC_Marshal not referenced
402
403
404 // Table 2:46 - Definition of TPMI_SH_POLICY Type  (TypeTable)
405 TPM2_RC
406 TPMI_SH_POLICY_Unmarshal(TPMI_SH_POLICY *target, BYTE **buffer, INT32 *size);
407
408 //     TPMI_SH_POLICY_Marshal not referenced
409
410
411 // Table 2:47 - Definition of TPMI_DH_CONTEXT Type  (TypeTable)
412 TPM2_RC
413 TPMI_DH_CONTEXT_Unmarshal(TPMI_DH_CONTEXT *target, BYTE **buffer, INT32 *size);
414
415 #define TPMI_DH_CONTEXT_Marshal(source, buffer, size) \
416             TPM_HANDLE_Marshal((TPM2_HANDLE *)(source), buffer, size)
417
418
419 // Table 2:48 - Definition of TPMI_RH_HIERARCHY Type  (TypeTable)
420 TPM2_RC
421 TPMI_RH_HIERARCHY_Unmarshal(TPMI_RH_HIERARCHY *target, BYTE **buffer, INT32 *size, BOOL flag);
422
423 #define TPMI_RH_HIERARCHY_Marshal(source, buffer, size) \
424             TPM_HANDLE_Marshal((TPM2_HANDLE *)(source), buffer, size)
425
426
427 // Table 2:49 - Definition of TPMI_RH_ENABLES Type  (TypeTable)
428 TPM2_RC
429 TPMI_RH_ENABLES_Unmarshal(TPMI_RH_ENABLES *target, BYTE **buffer, INT32 *size, BOOL flag);
430
431 //     TPMI_RH_ENABLES_Marshal not referenced
432
433
434 // Table 2:50 - Definition of TPMI_RH_HIERARCHY_AUTH Type  (TypeTable)
435 TPM2_RC
436 TPMI_RH_HIERARCHY_AUTH_Unmarshal(TPMI_RH_HIERARCHY_AUTH *target, BYTE **buffer, INT32 *size);
437
438 //     TPMI_RH_HIERARCHY_AUTH_Marshal not referenced
439
440
441 // Table 2:51 - Definition of TPMI_RH_PLATFORM Type  (TypeTable)
442 TPM2_RC
443 TPMI_RH_PLATFORM_Unmarshal(TPMI_RH_PLATFORM *target, BYTE **buffer, INT32 *size);
444
445 //     TPMI_RH_PLATFORM_Marshal not referenced
446
447
448 // Table 2:52 - Definition of TPMI_RH_OWNER Type  (TypeTable)
449 //     TPMI_RH_OWNER_Unmarshal not referenced
450 //     TPMI_RH_OWNER_Marshal not referenced
451
452
453 // Table 2:53 - Definition of TPMI_RH_ENDORSEMENT Type  (TypeTable)
454 TPM2_RC
455 TPMI_RH_ENDORSEMENT_Unmarshal(TPMI_RH_ENDORSEMENT *target, BYTE **buffer, INT32 *size, BOOL flag);
456
457 //     TPMI_RH_ENDORSEMENT_Marshal not referenced
458
459
460 // Table 2:54 - Definition of TPMI_RH_PROVISION Type  (TypeTable)
461 TPM2_RC
462 TPMI_RH_PROVISION_Unmarshal(TPMI_RH_PROVISION *target, BYTE **buffer, INT32 *size);
463
464 //     TPMI_RH_PROVISION_Marshal not referenced
465
466
467 // Table 2:55 - Definition of TPMI_RH_CLEAR Type  (TypeTable)
468 TPM2_RC
469 TPMI_RH_CLEAR_Unmarshal(TPMI_RH_CLEAR *target, BYTE **buffer, INT32 *size);
470
471 //     TPMI_RH_CLEAR_Marshal not referenced
472
473
474 // Table 2:56 - Definition of TPMI_RH_NV_AUTH Type  (TypeTable)
475 TPM2_RC
476 TPMI_RH_NV_AUTH_Unmarshal(TPMI_RH_NV_AUTH *target, BYTE **buffer, INT32 *size);
477
478 //     TPMI_RH_NV_AUTH_Marshal not referenced
479
480
481 // Table 2:57 - Definition of TPMI_RH_LOCKOUT Type  (TypeTable)
482 TPM2_RC
483 TPMI_RH_LOCKOUT_Unmarshal(TPMI_RH_LOCKOUT *target, BYTE **buffer, INT32 *size);
484
485 //     TPMI_RH_LOCKOUT_Marshal not referenced
486
487
488 // Table 2:58 - Definition of TPMI_RH_NV_INDEX Type  (TypeTable)
489 TPM2_RC
490 TPMI_RH_NV_INDEX_Unmarshal(TPMI_RH_NV_INDEX *target, BYTE **buffer, INT32 *size);
491
492 #define TPMI_RH_NV_INDEX_Marshal(source, buffer, size) \
493             TPM_HANDLE_Marshal((TPM2_HANDLE *)(source), buffer, size)
494
495
496 // Table 2:59 - Definition of TPMI_ALG_HASH Type  (TypeTable)
497 TPM2_RC
498 TPMI_ALG_HASH_Unmarshal(TPMI_ALG_HASH *target, BYTE **buffer, INT32 *size, BOOL flag);
499
500 #define TPMI_ALG_HASH_Marshal(source, buffer, size) \
501             TPM2_ALG_ID_Marshal((TPM2_ALG_ID *)(source), buffer, size)
502
503
504 // Table 2:60 - Definition of TPMI_ALG_ASYM Type (TypeTable)
505 //     TPMI_ALG_ASYM_Unmarshal not referenced
506 //     TPMI_ALG_ASYM_Marshal not referenced
507
508
509 // Table 2:61 - Definition of TPMI_ALG_SYM Type (TypeTable)
510 TPM2_RC
511 TPMI_ALG_SYM_Unmarshal(TPMI_ALG_SYM *target, BYTE **buffer, INT32 *size, BOOL flag);
512
513 //     TPMI_ALG_SYM_Marshal not referenced
514
515
516 // Table 2:62 - Definition of TPMI_ALG_SYM_OBJECT Type (TypeTable)
517 TPM2_RC
518 TPMI_ALG_SYM_OBJECT_Unmarshal(TPMI_ALG_SYM_OBJECT *target, BYTE **buffer, INT32 *size, BOOL flag);
519
520 #define TPMI_ALG_SYM_OBJECT_Marshal(source, buffer, size) \
521             TPM2_ALG_ID_Marshal((TPM2_ALG_ID *)(source), buffer, size)
522
523
524 // Table 2:63 - Definition of TPMI_ALG_SYM_MODE Type (TypeTable)
525 TPM2_RC
526 TPMI_ALG_SYM_MODE_Unmarshal(TPMI_ALG_SYM_MODE *target, BYTE **buffer, INT32 *size, BOOL flag);
527
528 #define TPMI_ALG_SYM_MODE_Marshal(source, buffer, size) \
529             TPM2_ALG_ID_Marshal((TPM2_ALG_ID *)(source), buffer, size)
530
531
532 // Table 2:64 - Definition of TPMI_ALG_KDF Type (TypeTable)
533 TPM2_RC
534 TPMI_ALG_KDF_Unmarshal(TPMI_ALG_KDF *target, BYTE **buffer, INT32 *size, BOOL flag);
535
536 #define TPMI_ALG_KDF_Marshal(source, buffer, size) \
537             TPM2_ALG_ID_Marshal((TPM2_ALG_ID *)(source), buffer, size)
538
539
540 // Table 2:65 - Definition of TPMI_ALG_SIG_SCHEME Type (TypeTable)
541 TPM2_RC
542 TPMI_ALG_SIG_SCHEME_Unmarshal(TPMI_ALG_SIG_SCHEME *target, BYTE **buffer, INT32 *size, BOOL flag);
543
544 #define TPMI_ALG_SIG_SCHEME_Marshal(source, buffer, size) \
545             TPM2_ALG_ID_Marshal((TPM2_ALG_ID *)(source), buffer, size)
546
547
548 // Table 2:66 - Definition of TPMI_ECC_KEY_EXCHANGE Type (TypeTable)
549 #ifdef    TPM2_ALG_ECC
550 TPM2_RC
551 TPMI_ECC_KEY_EXCHANGE_Unmarshal(TPMI_ECC_KEY_EXCHANGE *target, BYTE **buffer, INT32 *size, BOOL flag);
552
553 //     TPMI_ECC_KEY_EXCHANGE_Marshal not referenced
554 #endif // TPM2_ALG_ECC
555
556
557 // Table 2:67 - Definition of TPMI_ST_COMMAND_TAG Type (TypeTable)
558 TPM2_RC
559 TPMI_ST_COMMAND_TAG_Unmarshal(TPMI_ST_COMMAND_TAG *target, BYTE **buffer, INT32 *size);
560
561 //     TPMI_ST_COMMAND_TAG_Marshal not referenced
562 TPM2_RC
563 TPMS_EMPTY_Unmarshal(TPMS_EMPTY *target, BYTE **buffer, INT32 *size);
564 UINT16
565 TPMS_EMPTY_Marshal(TPMS_EMPTY *source, BYTE **buffer, INT32 *size);
566
567
568 // Table 2:69 - Definition of TPMS_ALGORITHM_DESCRIPTION Structure  (StructureTable)
569 //     TPMS_ALGORITHM_DESCRIPTION_Unmarshal not referenced
570 //     TPMS_ALGORITHM_DESCRIPTION_Marshal not referenced
571
572
573 // Table 2:70 - Definition of TPMU_HA Union  (UnionTable)
574 TPM2_RC
575 TPMU_HA_Unmarshal(TPMU_HA *target, BYTE **buffer, INT32 *size, UINT32 selector);
576 UINT16
577 TPMU_HA_Marshal(TPMU_HA *source, BYTE **buffer, INT32 *size, UINT32 selector);
578
579
580 // Table 2:71 - Definition of TPMT_HA Structure  (StructureTable)
581 TPM2_RC
582 TPMT_HA_Unmarshal(TPMT_HA *target, BYTE **buffer, INT32 *size, BOOL flag);
583 UINT16
584 TPMT_HA_Marshal(TPMT_HA *source, BYTE **buffer, INT32 *size);
585
586
587 // Table 2:72 - Definition of TPM2B_DIGEST Structure (StructureTable)
588 TPM2_RC
589 TPM2B_DIGEST_Unmarshal(TPM2B_DIGEST *target, BYTE **buffer, INT32 *size);
590 UINT16
591 TPM2B_DIGEST_Marshal(TPM2B_DIGEST *source, BYTE **buffer, INT32 *size);
592
593
594 // Table 2:73 - Definition of TPM2B_DATA Structure (StructureTable)
595 TPM2_RC
596 TPM2B_DATA_Unmarshal(TPM2B_DATA *target, BYTE **buffer, INT32 *size);
597 UINT16
598 TPM2B_DATA_Marshal(TPM2B_DATA *source, BYTE **buffer, INT32 *size);
599
600
601 // Table 2:74 - Definition of Types for TPM2B_NONCE (TypesTable)
602 //   TPM2B_DIGEST definition from table 2:74
603 #define TPM2B_NONCE_Unmarshal(target, buffer, size) \
604             TPM2B_DIGEST_Unmarshal((TPM2B_DIGEST *)(target), buffer, size)
605 #define TPM2B_NONCE_Marshal(source, buffer, size) \
606             TPM2B_DIGEST_Marshal((TPM2B_DIGEST *)(source), buffer, size)
607
608
609 // Table 2:75 - Definition of Types for TPM2B_AUTH (TypesTable)
610 //   TPM2B_DIGEST definition from table 2:75
611 #define TPM2B_AUTH_Unmarshal(target, buffer, size) \
612             TPM2B_DIGEST_Unmarshal((TPM2B_DIGEST *)(target), buffer, size)
613 #define TPM2B_AUTH_Marshal(source, buffer, size) \
614             TPM2B_DIGEST_Marshal((TPM2B_DIGEST *)(source), buffer, size)
615
616
617 // Table 2:76 - Definition of Types for TPM2B_OPERAND (TypesTable)
618 //   TPM2B_DIGEST definition from table 2:76
619 #define TPM2B_OPERAND_Unmarshal(target, buffer, size) \
620             TPM2B_DIGEST_Unmarshal((TPM2B_DIGEST *)(target), buffer, size)
621 //     TPM2B_OPERAND_Marshal not referenced
622
623
624 // Table 2:77 - Definition of TPM2B_EVENT Structure (StructureTable)
625 TPM2_RC
626 TPM2B_EVENT_Unmarshal(TPM2B_EVENT *target, BYTE **buffer, INT32 *size);
627
628 //     TPM2B_EVENT_Marshal not referenced
629
630
631 // Table 2:78 - Definition of TPM2B_MAX_BUFFER Structure (StructureTable)
632 TPM2_RC
633 TPM2B_MAX_BUFFER_Unmarshal(TPM2B_MAX_BUFFER *target, BYTE **buffer, INT32 *size);
634 UINT16
635 TPM2B_MAX_BUFFER_Marshal(TPM2B_MAX_BUFFER *source, BYTE **buffer, INT32 *size);
636
637
638 // Table 2:79 - Definition of TPM2B_MAX_NV_BUFFER Structure (StructureTable)
639 TPM2_RC
640 TPM2B_MAX_NV_BUFFER_Unmarshal(TPM2B_MAX_NV_BUFFER *target, BYTE **buffer, INT32 *size);
641 UINT16
642 TPM2B_MAX_NV_BUFFER_Marshal(TPM2B_MAX_NV_BUFFER *source, BYTE **buffer, INT32 *size);
643
644
645 // Table 2:80 - Definition of TPM2B_TIMEOUT Structure  (StructureTable)
646 TPM2_RC
647 TPM2B_TIMEOUT_Unmarshal(TPM2B_TIMEOUT *target, BYTE **buffer, INT32 *size);
648 UINT16
649 TPM2B_TIMEOUT_Marshal(TPM2B_TIMEOUT *source, BYTE **buffer, INT32 *size);
650
651
652 // Table 2:81 - Definition of TPM2B_IV Structure  (StructureTable)
653 TPM2_RC
654 TPM2B_IV_Unmarshal(TPM2B_IV *target, BYTE **buffer, INT32 *size);
655 UINT16
656 TPM2B_IV_Marshal(TPM2B_IV *source, BYTE **buffer, INT32 *size);
657
658
659 // Table 2:82 - Definition of TPMU_NAME Union  (UnionTable)
660
661
662 // Table 2:83 - Definition of TPM2B_NAME Structure (StructureTable)
663 TPM2_RC
664 TPM2B_NAME_Unmarshal(TPM2B_NAME *target, BYTE **buffer, INT32 *size);
665 UINT16
666 TPM2B_NAME_Marshal(TPM2B_NAME *source, BYTE **buffer, INT32 *size);
667
668
669 // Table 2:84 - Definition of TPMS_PCR_SELECT Structure (StructureTable)
670 //     TPMS_PCR_SELECT_Unmarshal not referenced
671 //     TPMS_PCR_SELECT_Marshal not referenced
672
673
674 // Table 2:85 - Definition of TPMS_PCR_SELECTION Structure (StructureTable)
675 TPM2_RC
676 TPMS_PCR_SELECTION_Unmarshal(TPMS_PCR_SELECTION *target, BYTE **buffer, INT32 *size);
677 UINT16
678 TPMS_PCR_SELECTION_Marshal(TPMS_PCR_SELECTION *source, BYTE **buffer, INT32 *size);
679
680
681 // Table 2:88 - Definition of TPMT_TK_CREATION Structure (StructureTable)
682 TPM2_RC
683 TPMT_TK_CREATION_Unmarshal(TPMT_TK_CREATION *target, BYTE **buffer, INT32 *size);
684 UINT16
685 TPMT_TK_CREATION_Marshal(TPMT_TK_CREATION *source, BYTE **buffer, INT32 *size);
686
687
688 // Table 2:89 - Definition of TPMT_TK_VERIFIED Structure (StructureTable)
689 TPM2_RC
690 TPMT_TK_VERIFIED_Unmarshal(TPMT_TK_VERIFIED *target, BYTE **buffer, INT32 *size);
691 UINT16
692 TPMT_TK_VERIFIED_Marshal(TPMT_TK_VERIFIED *source, BYTE **buffer, INT32 *size);
693
694
695 // Table 2:90 - Definition of TPMT_TK_AUTH Structure (StructureTable)
696 TPM2_RC
697 TPMT_TK_AUTH_Unmarshal(TPMT_TK_AUTH *target, BYTE **buffer, INT32 *size);
698 UINT16
699 TPMT_TK_AUTH_Marshal(TPMT_TK_AUTH *source, BYTE **buffer, INT32 *size);
700
701
702 // Table 2:91 - Definition of TPMT_TK_HASHCHECK Structure (StructureTable)
703 TPM2_RC
704 TPMT_TK_HASHCHECK_Unmarshal(TPMT_TK_HASHCHECK *target, BYTE **buffer, INT32 *size);
705 UINT16
706 TPMT_TK_HASHCHECK_Marshal(TPMT_TK_HASHCHECK *source, BYTE **buffer, INT32 *size);
707
708
709 // Table 2:92 - Definition of TPMS_ALG_PROPERTY Structure  (StructureTable)
710 //     TPMS_ALG_PROPERTY_Unmarshal not referenced
711 UINT16
712 TPMS_ALG_PROPERTY_Marshal(TPMS_ALG_PROPERTY *source, BYTE **buffer, INT32 *size);
713
714
715 // Table 2:93 - Definition of TPMS_TAGGED_PROPERTY Structure  (StructureTable)
716 //     TPMS_TAGGED_PROPERTY_Unmarshal not referenced
717 UINT16
718 TPMS_TAGGED_PROPERTY_Marshal(TPMS_TAGGED_PROPERTY *source, BYTE **buffer, INT32 *size);
719
720
721 // Table 2:94 - Definition of TPMS_TAGGED_PCR_SELECT Structure  (StructureTable)
722 //     TPMS_TAGGED_PCR_SELECT_Unmarshal not referenced
723 UINT16
724 TPMS_TAGGED_PCR_SELECT_Marshal(TPMS_TAGGED_PCR_SELECT *source, BYTE **buffer, INT32 *size);
725
726
727 // Table 2:95 - Definition of TPML_CC Structure (StructureTable)
728 TPM2_RC
729 TPML_CC_Unmarshal(TPML_CC *target, BYTE **buffer, INT32 *size);
730 UINT16
731 TPML_CC_Marshal(TPML_CC *source, BYTE **buffer, INT32 *size);
732
733
734 // Table 2:96 - Definition of TPML_CCA Structure  (StructureTable)
735 //     TPML_CCA_Unmarshal not referenced
736 UINT16
737 TPML_CCA_Marshal(TPML_CCA *source, BYTE **buffer, INT32 *size);
738
739
740 // Table 2:97 - Definition of TPML_ALG Structure (StructureTable)
741 TPM2_RC
742 TPML_ALG_Unmarshal(TPML_ALG *target, BYTE **buffer, INT32 *size);
743 UINT16
744 TPML_ALG_Marshal(TPML_ALG *source, BYTE **buffer, INT32 *size);
745
746
747 // Table 2:98 - Definition of TPML_HANDLE Structure  (StructureTable)
748 //     TPML_HANDLE_Unmarshal not referenced
749 UINT16
750 TPML_HANDLE_Marshal(TPML_HANDLE *source, BYTE **buffer, INT32 *size);
751
752
753 // Table 2:99 - Definition of TPML_DIGEST Structure (StructureTable)
754 TPM2_RC
755 TPML_DIGEST_Unmarshal(TPML_DIGEST *target, BYTE **buffer, INT32 *size);
756 UINT16
757 TPML_DIGEST_Marshal(TPML_DIGEST *source, BYTE **buffer, INT32 *size);
758
759
760 // Table 2:100 - Definition of TPML_DIGEST_VALUES Structure (StructureTable)
761 TPM2_RC
762 TPML_DIGEST_VALUES_Unmarshal(TPML_DIGEST_VALUES *target, BYTE **buffer, INT32 *size);
763 UINT16
764 TPML_DIGEST_VALUES_Marshal(TPML_DIGEST_VALUES *source, BYTE **buffer, INT32 *size);
765
766
767 // Table 2:101 - Definition of TPM2B_DIGEST_VALUES Structure (StructureTable)
768 //     TPM2B_DIGEST_VALUES_Unmarshal not referenced
769 //     TPM2B_DIGEST_VALUES_Marshal not referenced
770
771
772 // Table 2:102 - Definition of TPML_PCR_SELECTION Structure (StructureTable)
773 TPM2_RC
774 TPML_PCR_SELECTION_Unmarshal(TPML_PCR_SELECTION *target, BYTE **buffer, INT32 *size);
775 UINT16
776 TPML_PCR_SELECTION_Marshal(TPML_PCR_SELECTION *source, BYTE **buffer, INT32 *size);
777
778
779 // Table 2:103 - Definition of TPML_ALG_PROPERTY Structure  (StructureTable)
780 //     TPML_ALG_PROPERTY_Unmarshal not referenced
781 UINT16
782 TPML_ALG_PROPERTY_Marshal(TPML_ALG_PROPERTY *source, BYTE **buffer, INT32 *size);
783
784
785 // Table 2:104 - Definition of TPML_TAGGED_TPM_PROPERTY Structure  (StructureTable)
786 //     TPML_TAGGED_TPM_PROPERTY_Unmarshal not referenced
787 UINT16
788 TPML_TAGGED_TPM_PROPERTY_Marshal(TPML_TAGGED_TPM_PROPERTY *source, BYTE **buffer, INT32 *size);
789
790
791 // Table 2:105 - Definition of TPML_TAGGED_PCR_PROPERTY Structure  (StructureTable)
792 //     TPML_TAGGED_PCR_PROPERTY_Unmarshal not referenced
793 UINT16
794 TPML_TAGGED_PCR_PROPERTY_Marshal(TPML_TAGGED_PCR_PROPERTY *source, BYTE **buffer, INT32 *size);
795
796
797 // Table 2:106 - Definition of TPML_ECC_CURVE Structure  (StructureTable)
798 #ifdef    TPM2_ALG_ECC
799 //     TPML_ECC_CURVE_Unmarshal not referenced
800 UINT16
801 TPML_ECC_CURVE_Marshal(TPML_ECC_CURVE *source, BYTE **buffer, INT32 *size);
802
803 #endif // TPM2_ALG_ECC
804
805
806 // Table 2:107 - Definition of TPMU_CAPABILITIES Union  (UnionTable)
807 //     TPMU_CAPABILITIES_Unmarshal not referenced
808 UINT16
809 TPMU_CAPABILITIES_Marshal(TPMU_CAPABILITIES *source, BYTE **buffer, INT32 *size, UINT32 selector);
810
811
812 // Table 2:108 - Definition of TPMS_CAPABILITY_DATA Structure  (StructureTable)
813 //     TPMS_CAPABILITY_DATA_Unmarshal not referenced
814 UINT16
815 TPMS_CAPABILITY_DATA_Marshal(TPMS_CAPABILITY_DATA *source, BYTE **buffer, INT32 *size);
816
817
818 // Table 2:109 - Definition of TPMS_CLOCK_INFO Structure (StructureTable)
819 //     TPMS_CLOCK_INFO_Unmarshal not referenced
820 UINT16
821 TPMS_CLOCK_INFO_Marshal(TPMS_CLOCK_INFO *source, BYTE **buffer, INT32 *size);
822
823
824 // Table 2:110 - Definition of TPMS_TIME_INFO Structure (StructureTable)
825 //     TPMS_TIME_INFO_Unmarshal not referenced
826 UINT16
827 TPMS_TIME_INFO_Marshal(TPMS_TIME_INFO *source, BYTE **buffer, INT32 *size);
828
829
830 // Table 2:111 - Definition of TPMS_TIME_ATTEST_INFO Structure  (StructureTable)
831 //     TPMS_TIME_ATTEST_INFO_Unmarshal not referenced
832 UINT16
833 TPMS_TIME_ATTEST_INFO_Marshal(TPMS_TIME_ATTEST_INFO *source, BYTE **buffer, INT32 *size);
834
835
836 // Table 2:112 - Definition of TPMS_CERTIFY_INFO Structure  (StructureTable)
837 //     TPMS_CERTIFY_INFO_Unmarshal not referenced
838 UINT16
839 TPMS_CERTIFY_INFO_Marshal(TPMS_CERTIFY_INFO *source, BYTE **buffer, INT32 *size);
840
841
842 // Table 2:113 - Definition of TPMS_QUOTE_INFO Structure  (StructureTable)
843 //     TPMS_QUOTE_INFO_Unmarshal not referenced
844 UINT16
845 TPMS_QUOTE_INFO_Marshal(TPMS_QUOTE_INFO *source, BYTE **buffer, INT32 *size);
846
847
848 // Table 2:114 - Definition of TPMS_COMMAND_AUDIT_INFO Structure  (StructureTable)
849 //     TPMS_COMMAND_AUDIT_INFO_Unmarshal not referenced
850 UINT16
851 TPMS_COMMAND_AUDIT_INFO_Marshal(TPMS_COMMAND_AUDIT_INFO *source, BYTE **buffer, INT32 *size);
852
853
854 // Table 2:115 - Definition of TPMS_SESSION_AUDIT_INFO Structure  (StructureTable)
855 //     TPMS_SESSION_AUDIT_INFO_Unmarshal not referenced
856 UINT16
857 TPMS_SESSION_AUDIT_INFO_Marshal(TPMS_SESSION_AUDIT_INFO *source, BYTE **buffer, INT32 *size);
858
859
860 // Table 2:116 - Definition of TPMS_CREATION_INFO Structure  (StructureTable)
861 //     TPMS_CREATION_INFO_Unmarshal not referenced
862 UINT16
863 TPMS_CREATION_INFO_Marshal(TPMS_CREATION_INFO *source, BYTE **buffer, INT32 *size);
864
865
866 // Table 2:117 - Definition of TPMS_NV_CERTIFY_INFO Structure  (StructureTable)
867 //     TPMS_NV_CERTIFY_INFO_Unmarshal not referenced
868 UINT16
869 TPMS_NV_CERTIFY_INFO_Marshal(TPMS_NV_CERTIFY_INFO *source, BYTE **buffer, INT32 *size);
870
871
872 // Table 2:118 - Definition of TPMI_ST_ATTEST Type  (TypeTable)
873 //     TPMI_ST_ATTEST_Unmarshal not referenced
874 #define TPMI_ST_ATTEST_Marshal(source, buffer, size) \
875             TPM_ST_Marshal((TPM2_ST *)(source), buffer, size)
876
877
878 // Table 2:119 - Definition of TPMU_ATTEST Union  (UnionTable)
879 //     TPMU_ATTEST_Unmarshal not referenced
880 UINT16
881 TPMU_ATTEST_Marshal(TPMU_ATTEST *source, BYTE **buffer, INT32 *size, UINT32 selector);
882
883
884 // Table 2:120 - Definition of TPMS_ATTEST Structure  (StructureTable)
885 //     TPMS_ATTEST_Unmarshal not referenced
886 UINT16
887 TPMS_ATTEST_Marshal(TPMS_ATTEST *source, BYTE **buffer, INT32 *size);
888
889
890 // Table 2:121 - Definition of TPM2B_ATTEST Structure  (StructureTable)
891 //     TPM2B_ATTEST_Unmarshal not referenced
892 UINT16
893 TPM2B_ATTEST_Marshal(TPM2B_ATTEST *source, BYTE **buffer, INT32 *size);
894
895
896 // Table 2:122 - Definition of TPMS_AUTH_COMMAND Structure  (StructureTable)
897 //     TPMS_AUTH_COMMAND_Unmarshal not referenced
898 //     TPMS_AUTH_COMMAND_Marshal not referenced
899
900
901 // Table 2:123 - Definition of TPMS_AUTH_RESPONSE Structure  (StructureTable)
902 //     TPMS_AUTH_RESPONSE_Unmarshal not referenced
903 //     TPMS_AUTH_RESPONSE_Marshal not referenced
904
905
906 // Table 2:124 - Definition of TPMI_AES_KEY_BITS Type (TypeTable)
907 #ifdef    TPM2_ALG_AES
908 TPM2_RC
909 TPMI_AES_KEY_BITS_Unmarshal(TPMI_AES_KEY_BITS *target, BYTE **buffer, INT32 *size);
910
911 #define TPMI_AES_KEY_BITS_Marshal(source, buffer, size) \
912             TPM_KEY_BITS_Marshal((TPM2_KEY_BITS *)(source), buffer, size)
913 #endif // TPM2_ALG_AES
914
915 #define HASH_COUNT (TPM2_ALG_SHA1+TPM2_ALG_SHA256+TPM2_ALG_SHA384+TPM2_ALG_SM3_256+TPM2_ALG_SHA512)
916
917 // Table 2:124 - Definition of TPMI_SM4_KEY_BITS Type (TypeTable)
918 #ifdef    TPM2_ALG_SM4
919 TPM2_RC
920 TPMI_SM4_KEY_BITS_Unmarshal(TPMI_SM4_KEY_BITS *target, BYTE **buffer, INT32 *size);
921
922 #define TPMI_SM4_KEY_BITS_Marshal(source, buffer, size) \
923             TPM_KEY_BITS_Marshal((TPM2_KEY_BITS *)(source), buffer, size)
924 #endif // TPM2_ALG_SM4
925
926
927 // Table 2:124 - Definition of TPMI_CAMELLIA_KEY_BITS Type (TypeTable)
928 #ifdef    TPM2_ALG_CAMELLIA
929 TPM2_RC
930 TPMI_CAMELLIA_KEY_BITS_Unmarshal(TPMI_TPM2_CAMELLIA_KEY_BITS *target, BYTE **buffer, INT32 *size);
931
932 #define TPMI_CAMELLIA_KEY_BITS_Marshal(source, buffer, size) \
933             TPM_KEY_BITS_Marshal((TPM2_KEY_BITS *)(source), buffer, size)
934 #endif // TPM2_ALG_CAMELLIA
935
936
937 // Table 2:125 - Definition of TPMU_SYM_KEY_BITS Union (UnionTable)
938 TPM2_RC
939 TPMU_SYM_KEY_BITS_Unmarshal(TPMU_SYM_KEY_BITS *target, BYTE **buffer, INT32 *size, UINT32 selector);
940 UINT16
941 TPMU_SYM_KEY_BITS_Marshal(TPMU_SYM_KEY_BITS *source, BYTE **buffer, INT32 *size, UINT32 selector);
942
943
944 // Table 2:126 - Definition of TPMU_SYM_MODE Union (UnionTable)
945 TPM2_RC
946 TPMU_SYM_MODE_Unmarshal(TPMU_SYM_MODE *target, BYTE **buffer, INT32 *size, UINT32 selector);
947 UINT16
948 TPMU_SYM_MODE_Marshal(TPMU_SYM_MODE *source, BYTE **buffer, INT32 *size, UINT32 selector);
949
950
951 // Table 2:128 - Definition of TPMT_SYM_DEF Structure (StructureTable)
952 TPM2_RC
953 TPMT_SYM_DEF_Unmarshal(TPMT_SYM_DEF *target, BYTE **buffer, INT32 *size, BOOL flag);
954
955 //     TPMT_SYM_DEF_Marshal not referenced
956
957
958 // Table 2:129 - Definition of TPMT_SYM_DEF_OBJECT Structure (StructureTable)
959 TPM2_RC
960 TPMT_SYM_DEF_OBJECT_Unmarshal(TPMT_SYM_DEF_OBJECT *target, BYTE **buffer, INT32 *size, BOOL flag);
961 UINT16
962 TPMT_SYM_DEF_OBJECT_Marshal(TPMT_SYM_DEF_OBJECT *source, BYTE **buffer, INT32 *size);
963
964
965 // Table 2:130 - Definition of TPM2B_SYM_KEY Structure (StructureTable)
966 TPM2_RC
967 TPM2B_SYM_KEY_Unmarshal(TPM2B_SYM_KEY *target, BYTE **buffer, INT32 *size);
968 UINT16
969 TPM2B_SYM_KEY_Marshal(TPM2B_SYM_KEY *source, BYTE **buffer, INT32 *size);
970
971
972 // Table 2:131 - Definition of TPMS_SYMCIPHER_PARMS Structure (StructureTable)
973 #define TPMS_SYMCIPHER_PARMS_Unmarshal(target, buffer, size) \
974             TPMT_SYM_DEF_OBJECT_Unmarshal((TPMT_SYM_DEF_OBJECT *)&((target)->sym), buffer, size, 0)
975 #define TPMS_SYMCIPHER_PARMS_Marshal(source, buffer, size) \
976             TPMT_SYM_DEF_OBJECT_Marshal((TPMT_SYM_DEF_OBJECT *)&((source)->sym), buffer, size)
977
978
979 // Table 2:132 - Definition of TPM2B_SENSITIVE_DATA Structure (StructureTable)
980 TPM2_RC
981 TPM2B_SENSITIVE_DATA_Unmarshal(TPM2B_SENSITIVE_DATA *target, BYTE **buffer, INT32 *size);
982 UINT16
983 TPM2B_SENSITIVE_DATA_Marshal(TPM2B_SENSITIVE_DATA *source, BYTE **buffer, INT32 *size);
984
985
986 // Table 2:133 - Definition of TPMS_SENSITIVE_CREATE Structure  (StructureTable)
987 TPM2_RC
988 TPMS_SENSITIVE_CREATE_Unmarshal(TPMS_SENSITIVE_CREATE *target, BYTE **buffer, INT32 *size);
989
990 //     TPMS_SENSITIVE_CREATE_Marshal not referenced
991
992
993 // Table 2:134 - Definition of TPM2B_SENSITIVE_CREATE Structure  (StructureTable)
994 TPM2_RC
995 TPM2B_SENSITIVE_CREATE_Unmarshal(TPM2B_SENSITIVE_CREATE *target, BYTE **buffer, INT32 *size);
996
997 //     TPM2B_SENSITIVE_CREATE_Marshal not referenced
998
999
1000 // Table 2:135 - Definition of TPMS_SCHEME_HASH Structure (StructureTable)
1001 #define TPMS_SCHEME_HASH_Unmarshal(target, buffer, size) \
1002             TPMI_ALG_HASH_Unmarshal((TPMI_ALG_HASH *)&((target)->hashAlg), buffer, size, 0)
1003 #define TPMS_SCHEME_HASH_Marshal(source, buffer, size) \
1004             TPMI_ALG_HASH_Marshal((TPMI_ALG_HASH *)&((source)->hashAlg), buffer, size)
1005
1006
1007 // Table 2:136 - Definition of TPMS_SCHEME_ECDAA Structure (StructureTable)
1008 #ifdef    TPM2_ALG_ECC
1009 TPM2_RC
1010 TPMS_SCHEME_ECDAA_Unmarshal(TPMS_SCHEME_ECDAA *target, BYTE **buffer, INT32 *size);
1011 UINT16
1012 TPMS_SCHEME_ECDAA_Marshal(TPMS_SCHEME_ECDAA *source, BYTE **buffer, INT32 *size);
1013
1014 #endif // TPM2_ALG_ECC
1015
1016
1017 // Table 2:137 - Definition of TPMI_ALG_KEYEDHASH_SCHEME Type (TypeTable)
1018 TPM2_RC
1019 TPMI_ALG_KEYEDHASH_SCHEME_Unmarshal(TPMI_ALG_KEYEDHASH_SCHEME *target, BYTE **buffer, INT32 *size, BOOL flag);
1020
1021 #define TPMI_ALG_KEYEDHASH_SCHEME_Marshal(source, buffer, size) \
1022             TPM2_ALG_ID_Marshal((TPM2_ALG_ID *)(source), buffer, size)
1023
1024
1025 // Table 2:138 - Definition of Types for HMAC_SIG_SCHEME (TypesTable)
1026 //   TPMS_SCHEME_HASH definition from table 2:138
1027 #define TPMS_SCHEME_HMAC_Unmarshal(target, buffer, size) \
1028             TPMS_SCHEME_HASH_Unmarshal((TPMS_SCHEME_HASH *)(target), buffer, size)
1029 #define TPMS_SCHEME_HMAC_Marshal(source, buffer, size) \
1030             TPMS_SCHEME_HASH_Marshal((TPMS_SCHEME_HASH *)(source), buffer, size)
1031
1032
1033 // Table 2:139 - Definition of TPMS_SCHEME_XOR Structure (StructureTable)
1034 TPM2_RC
1035 TPMS_SCHEME_XOR_Unmarshal(TPMS_SCHEME_XOR *target, BYTE **buffer, INT32 *size, BOOL flag);
1036 UINT16
1037 TPMS_SCHEME_XOR_Marshal(TPMS_SCHEME_XOR *source, BYTE **buffer, INT32 *size);
1038
1039
1040 // Table 2:140 - Definition of TPMU_SCHEME_KEYEDHASH Union  (UnionTable)
1041 TPM2_RC
1042 TPMU_SCHEME_KEYEDHASH_Unmarshal(TPMU_SCHEME_KEYEDHASH *target, BYTE **buffer, INT32 *size, UINT32 selector);
1043 UINT16
1044 TPMU_SCHEME_KEYEDHASH_Marshal(TPMU_SCHEME_KEYEDHASH *source, BYTE **buffer, INT32 *size, UINT32 selector);
1045
1046
1047 // Table 2:141 - Definition of TPMT_KEYEDHASH_SCHEME Structure (StructureTable)
1048 TPM2_RC
1049 TPMT_KEYEDHASH_SCHEME_Unmarshal(TPMT_KEYEDHASH_SCHEME *target, BYTE **buffer, INT32 *size, BOOL flag);
1050 UINT16
1051 TPMT_KEYEDHASH_SCHEME_Marshal(TPMT_KEYEDHASH_SCHEME *source, BYTE **buffer, INT32 *size);
1052
1053
1054 // Table 2:142 - Definition of Types for RSA Signature Schemes  (TypesTable)
1055 #ifdef    TPM2_ALG_RSA
1056 //   TPMS_SCHEME_HASH definition from table 2:142
1057 #ifdef    TPM2_ALG_RSA
1058 #define TPMS_SIG_SCHEME_RSASSA_Unmarshal(target, buffer, size) \
1059             TPMS_SCHEME_HASH_Unmarshal((TPMS_SCHEME_HASH *)(target), buffer, size)
1060 #define TPMS_SIG_SCHEME_RSASSA_Marshal(source, buffer, size) \
1061             TPMS_SCHEME_HASH_Marshal((TPMS_SCHEME_HASH *)(source), buffer, size)
1062 #endif // TPM2_ALG_RSA
1063 //   TPMS_SCHEME_HASH definition from table 2:142
1064 #ifdef    TPM2_ALG_RSA
1065 #define TPMS_SIG_SCHEME_RSAPSS_Unmarshal(target, buffer, size) \
1066             TPMS_SCHEME_HASH_Unmarshal((TPMS_SCHEME_HASH *)(target), buffer, size)
1067 #define TPMS_SIG_SCHEME_RSAPSS_Marshal(source, buffer, size) \
1068             TPMS_SCHEME_HASH_Marshal((TPMS_SCHEME_HASH *)(source), buffer, size)
1069 #endif // TPM2_ALG_RSA
1070 #endif // TPM2_ALG_RSA
1071
1072
1073 // Table 2:143 - Definition of Types for ECC Signature Schemes  (TypesTable)
1074 #ifdef    TPM2_ALG_ECC
1075 //   TPMS_SCHEME_HASH definition from table 2:143
1076 #ifdef    TPM2_ALG_ECC
1077 #define TPMS_SIG_SCHEME_ECDSA_Unmarshal(target, buffer, size) \
1078             TPMS_SCHEME_HASH_Unmarshal((TPMS_SCHEME_HASH *)(target), buffer, size)
1079 #define TPMS_SIG_SCHEME_ECDSA_Marshal(source, buffer, size) \
1080             TPMS_SCHEME_HASH_Marshal((TPMS_SCHEME_HASH *)(source), buffer, size)
1081 #endif // TPM2_ALG_ECC
1082 //   TPMS_SCHEME_HASH definition from table 2:143
1083 #ifdef    TPM2_ALG_ECC
1084 #define TPMS_SIG_SCHEME_SM2_Unmarshal(target, buffer, size) \
1085             TPMS_SCHEME_HASH_Unmarshal((TPMS_SCHEME_HASH *)(target), buffer, size)
1086 #define TPMS_SIG_SCHEME_SM2_Marshal(source, buffer, size) \
1087             TPMS_SCHEME_HASH_Marshal((TPMS_SCHEME_HASH *)(source), buffer, size)
1088 #endif // TPM2_ALG_ECC
1089 //   TPMS_SCHEME_HASH definition from table 2:143
1090 #ifdef    TPM2_ALG_ECC
1091 #define TPMS_SIG_SCHEME_ECSCHNORR_Unmarshal(target, buffer, size) \
1092             TPMS_SCHEME_HASH_Unmarshal((TPMS_SCHEME_HASH *)(target), buffer, size)
1093 #define TPMS_SIG_SCHEME_ECSCHNORR_Marshal(source, buffer, size) \
1094             TPMS_SCHEME_HASH_Marshal((TPMS_SCHEME_HASH *)(source), buffer, size)
1095 #endif // TPM2_ALG_ECC
1096 //   TPMS_SCHEME_ECDAA definition from table 2:143
1097 #ifdef    TPM2_ALG_ECC
1098 #define TPMS_SIG_SCHEME_ECDAA_Unmarshal(target, buffer, size) \
1099             TPMS_SCHEME_ECDAA_Unmarshal((TPMS_SCHEME_ECDAA *)(target), buffer, size)
1100 #define TPMS_SIG_SCHEME_ECDAA_Marshal(source, buffer, size) \
1101             TPMS_SCHEME_ECDAA_Marshal((TPMS_SCHEME_ECDAA *)(source), buffer, size)
1102 #endif // TPM2_ALG_ECC
1103 #endif // TPM2_ALG_ECC
1104
1105
1106 // Table 2:144 - Definition of TPMU_SIG_SCHEME Union  (UnionTable)
1107 TPM2_RC
1108 TPMU_SIG_SCHEME_Unmarshal(TPMU_SIG_SCHEME *target, BYTE **buffer, INT32 *size, UINT32 selector);
1109
1110 //     TPMU_SIG_SCHEME_Marshal not referenced
1111
1112
1113 // Table 2:145 - Definition of TPMT_SIG_SCHEME Structure (StructureTable)
1114 TPM2_RC
1115 TPMT_SIG_SCHEME_Unmarshal(TPMT_SIG_SCHEME *target, BYTE **buffer, INT32 *size, BOOL flag);
1116
1117 //     TPMT_SIG_SCHEME_Marshal not referenced
1118
1119
1120 // Table 2:146 - Definition of Types for Encryption Schemes (TypesTable)
1121 #ifdef    TPM2_ALG_RSA
1122 //   TPMS_SCHEME_HASH definition from table 2:146
1123 #ifdef    TPM2_ALG_RSA
1124 #define TPMS_ENC_SCHEME_OAEP_Unmarshal(target, buffer, size) \
1125             TPMS_SCHEME_HASH_Unmarshal((TPMS_SCHEME_HASH *)(target), buffer, size)
1126 #define TPMS_ENC_SCHEME_OAEP_Marshal(source, buffer, size) \
1127             TPMS_SCHEME_HASH_Marshal((TPMS_SCHEME_HASH *)(source), buffer, size)
1128 #endif // TPM2_ALG_RSA
1129 //   TPMS_EMPTY definition from table 2:146
1130 #ifdef    TPM2_ALG_RSA
1131 #define TPMS_ENC_SCHEME_RSAES_Unmarshal(target, buffer, size) \
1132             TPMS_EMPTY_Unmarshal((TPMS_EMPTY *)(target), buffer, size)
1133 #define TPMS_ENC_SCHEME_RSAES_Marshal(source, buffer, size) \
1134             TPMS_EMPTY_Marshal((TPMS_EMPTY *)(source), buffer, size)
1135 #endif // TPM2_ALG_RSA
1136 #endif // TPM2_ALG_RSA
1137
1138
1139 // Table 2:147 - Definition of Types for ECC Key Exchange (TypesTable)
1140 #ifdef    TPM2_ALG_ECC
1141 //   TPMS_SCHEME_HASH definition from table 2:147
1142 #ifdef    TPM2_ALG_ECC
1143 #define TPMS_KEY_SCHEME_ECDH_Unmarshal(target, buffer, size) \
1144             TPMS_SCHEME_HASH_Unmarshal((TPMS_SCHEME_HASH *)(target), buffer, size)
1145 #define TPMS_KEY_SCHEME_ECDH_Marshal(source, buffer, size) \
1146             TPMS_SCHEME_HASH_Marshal((TPMS_SCHEME_HASH *)(source), buffer, size)
1147 #endif // TPM2_ALG_ECC
1148 //   TPMS_SCHEME_HASH definition from table 2:147
1149 #ifdef    TPM2_ALG_ECC
1150 #define TPMS_KEY_SCHEME_ECMQV_Unmarshal(target, buffer, size) \
1151             TPMS_SCHEME_HASH_Unmarshal((TPMS_SCHEME_HASH *)(target), buffer, size)
1152 #define TPMS_KEY_SCHEME_ECMQV_Marshal(source, buffer, size) \
1153             TPMS_SCHEME_HASH_Marshal((TPMS_SCHEME_HASH *)(source), buffer, size)
1154 #endif // TPM2_ALG_ECC
1155 #endif // TPM2_ALG_ECC
1156
1157
1158 // Table 2:148 - Definition of Types for KDF Schemes (TypesTable)
1159 //   TPMS_SCHEME_HASH definition from table 2:148
1160 #define TPMS_SCHEME_MGF1_Unmarshal(target, buffer, size) \
1161             TPMS_SCHEME_HASH_Unmarshal((TPMS_SCHEME_HASH *)(target), buffer, size)
1162 #define TPMS_SCHEME_MGF1_Marshal(source, buffer, size) \
1163             TPMS_SCHEME_HASH_Marshal((TPMS_SCHEME_HASH *)(source), buffer, size)
1164 //   TPMS_SCHEME_HASH definition from table 2:148
1165 #define TPMS_SCHEME_KDF1_SP800_56A_Unmarshal(target, buffer, size) \
1166             TPMS_SCHEME_HASH_Unmarshal((TPMS_SCHEME_HASH *)(target), buffer, size)
1167 #define TPMS_SCHEME_KDF1_SP800_56A_Marshal(source, buffer, size) \
1168             TPMS_SCHEME_HASH_Marshal((TPMS_SCHEME_HASH *)(source), buffer, size)
1169 //   TPMS_SCHEME_HASH definition from table 2:148
1170 #define TPMS_SCHEME_KDF2_Unmarshal(target, buffer, size) \
1171             TPMS_SCHEME_HASH_Unmarshal((TPMS_SCHEME_HASH *)(target), buffer, size)
1172 #define TPMS_SCHEME_KDF2_Marshal(source, buffer, size) \
1173             TPMS_SCHEME_HASH_Marshal((TPMS_SCHEME_HASH *)(source), buffer, size)
1174 //   TPMS_SCHEME_HASH definition from table 2:148
1175 #define TPMS_SCHEME_KDF1_SP800_108_Unmarshal(target, buffer, size) \
1176             TPMS_SCHEME_HASH_Unmarshal((TPMS_SCHEME_HASH *)(target), buffer, size)
1177 #define TPMS_SCHEME_KDF1_SP800_108_Marshal(source, buffer, size) \
1178             TPMS_SCHEME_HASH_Marshal((TPMS_SCHEME_HASH *)(source), buffer, size)
1179
1180
1181 // Table 2:149 - Definition of TPMU_KDF_SCHEME Union  (UnionTable)
1182 TPM2_RC
1183 TPMU_KDF_SCHEME_Unmarshal(TPMU_KDF_SCHEME *target, BYTE **buffer, INT32 *size, UINT32 selector);
1184 UINT16
1185 TPMU_KDF_SCHEME_Marshal(TPMU_KDF_SCHEME *source, BYTE **buffer, INT32 *size, UINT32 selector);
1186
1187
1188 // Table 2:150 - Definition of TPMT_KDF_SCHEME Structure (StructureTable)
1189 TPM2_RC
1190 TPMT_KDF_SCHEME_Unmarshal(TPMT_KDF_SCHEME *target, BYTE **buffer, INT32 *size, BOOL flag);
1191 UINT16
1192 TPMT_KDF_SCHEME_Marshal(TPMT_KDF_SCHEME *source, BYTE **buffer, INT32 *size);
1193
1194
1195 // Table 2:151 - Definition of TPMI_ALG_ASYM_SCHEME Type  (TypeTable)
1196 //     TPMI_ALG_ASYM_SCHEME_Unmarshal not referenced
1197 //     TPMI_ALG_ASYM_SCHEME_Marshal not referenced
1198
1199
1200 // Table 2:152 - Definition of TPMU_ASYM_SCHEME Union (UnionTable)
1201 TPM2_RC
1202 TPMU_ASYM_SCHEME_Unmarshal(TPMU_ASYM_SCHEME *target, BYTE **buffer, INT32 *size, UINT32 selector);
1203 UINT16
1204 TPMU_ASYM_SCHEME_Marshal(TPMU_ASYM_SCHEME *source, BYTE **buffer, INT32 *size, UINT32 selector);
1205
1206
1207 // Table 2:153 - Definition of TPMT_ASYM_SCHEME Structure  (StructureTable)
1208 //     TPMT_ASYM_SCHEME_Unmarshal not referenced
1209 //     TPMT_ASYM_SCHEME_Marshal not referenced
1210
1211
1212 // Table 2:154 - Definition of TPMI_ALG_RSA_SCHEME Type (TypeTable)
1213 #ifdef    TPM2_ALG_RSA
1214 TPM2_RC
1215 TPMI_ALG_RSA_SCHEME_Unmarshal(TPMI_ALG_RSA_SCHEME *target, BYTE **buffer, INT32 *size, BOOL flag);
1216
1217 #define TPMI_ALG_RSA_SCHEME_Marshal(source, buffer, size) \
1218             TPM2_ALG_ID_Marshal((TPM2_ALG_ID *)(source), buffer, size)
1219 #endif // TPM2_ALG_RSA
1220
1221
1222 // Table 2:155 - Definition of TPMT_RSA_SCHEME Structure (StructureTable)
1223 #ifdef    TPM2_ALG_RSA
1224 TPM2_RC
1225 TPMT_RSA_SCHEME_Unmarshal(TPMT_RSA_SCHEME *target, BYTE **buffer, INT32 *size, BOOL flag);
1226 UINT16
1227 TPMT_RSA_SCHEME_Marshal(TPMT_RSA_SCHEME *source, BYTE **buffer, INT32 *size);
1228
1229 #endif // TPM2_ALG_RSA
1230
1231
1232 // Table 2:156 - Definition of TPMI_ALG_RSA_DECRYPT Type (TypeTable)
1233 #ifdef    TPM2_ALG_RSA
1234 TPM2_RC
1235 TPMI_ALG_RSA_DECRYPT_Unmarshal(TPMI_ALG_RSA_DECRYPT *target, BYTE **buffer, INT32 *size, BOOL flag);
1236
1237 //     TPMI_ALG_RSA_DECRYPT_Marshal not referenced
1238 #endif // TPM2_ALG_RSA
1239
1240
1241 // Table 2:157 - Definition of TPMT_RSA_DECRYPT Structure (StructureTable)
1242 #ifdef    TPM2_ALG_RSA
1243 TPM2_RC
1244 TPMT_RSA_DECRYPT_Unmarshal(TPMT_RSA_DECRYPT *target, BYTE **buffer, INT32 *size, BOOL flag);
1245
1246 //     TPMT_RSA_DECRYPT_Marshal not referenced
1247 #endif // TPM2_ALG_RSA
1248
1249
1250 // Table 2:158 - Definition of TPM2B_PUBLIC_KEY_RSA Structure (StructureTable)
1251 #ifdef    TPM2_ALG_RSA
1252 TPM2_RC
1253 TPM2B_PUBLIC_KEY_RSA_Unmarshal(TPM2B_PUBLIC_KEY_RSA *target, BYTE **buffer, INT32 *size);
1254 UINT16
1255 TPM2B_PUBLIC_KEY_RSA_Marshal(TPM2B_PUBLIC_KEY_RSA *source, BYTE **buffer, INT32 *size);
1256
1257 #endif // TPM2_ALG_RSA
1258
1259
1260 // Table 2:159 - Definition of TPMI_RSA_KEY_BITS Type (TypeTable)
1261 #ifdef    TPM2_ALG_RSA
1262 TPM2_RC
1263 TPMI_RSA_KEY_BITS_Unmarshal(TPMI_RSA_KEY_BITS *target, BYTE **buffer, INT32 *size);
1264
1265 #define TPMI_RSA_KEY_BITS_Marshal(source, buffer, size) \
1266             TPM_KEY_BITS_Marshal((TPM2_KEY_BITS *)(source), buffer, size)
1267 #endif // TPM2_ALG_RSA
1268
1269
1270 // Table 2:160 - Definition of TPM2B_PRIVATE_KEY_RSA Structure (StructureTable)
1271 #ifdef    TPM2_ALG_RSA
1272 TPM2_RC
1273 TPM2B_PRIVATE_KEY_RSA_Unmarshal(TPM2B_PRIVATE_KEY_RSA *target, BYTE **buffer, INT32 *size);
1274 UINT16
1275 TPM2B_PRIVATE_KEY_RSA_Marshal(TPM2B_PRIVATE_KEY_RSA *source, BYTE **buffer, INT32 *size);
1276
1277 #endif // TPM2_ALG_RSA
1278
1279
1280 // Table 2:161 - Definition of TPM2B_ECC_PARAMETER Structure (StructureTable)
1281 #ifdef    TPM2_ALG_ECC
1282 TPM2_RC
1283 TPM2B_ECC_PARAMETER_Unmarshal(TPM2B_ECC_PARAMETER *target, BYTE **buffer, INT32 *size);
1284 UINT16
1285 TPM2B_ECC_PARAMETER_Marshal(TPM2B_ECC_PARAMETER *source, BYTE **buffer, INT32 *size);
1286
1287 #endif // TPM2_ALG_ECC
1288
1289
1290 // Table 2:162 - Definition of TPMS_ECC_POINT Structure (StructureTable)
1291 #ifdef    TPM2_ALG_ECC
1292 TPM2_RC
1293 TPMS_ECC_POINT_Unmarshal(TPMS_ECC_POINT *target, BYTE **buffer, INT32 *size);
1294 UINT16
1295 TPMS_ECC_POINT_Marshal(TPMS_ECC_POINT *source, BYTE **buffer, INT32 *size);
1296
1297 #endif // TPM2_ALG_ECC
1298
1299
1300 // Table 2:163 - Definition of TPM2B_ECC_POINT Structure (StructureTable)
1301 #ifdef    TPM2_ALG_ECC
1302 TPM2_RC
1303 TPM2B_ECC_POINT_Unmarshal(TPM2B_ECC_POINT *target, BYTE **buffer, INT32 *size);
1304 UINT16
1305 TPM2B_ECC_POINT_Marshal(TPM2B_ECC_POINT *source, BYTE **buffer, INT32 *size);
1306
1307 #endif // TPM2_ALG_ECC
1308
1309
1310 // Table 2:164 - Definition of TPMI_ALG_ECC_SCHEME Type (TypeTable)
1311 #ifdef    TPM2_ALG_ECC
1312 TPM2_RC
1313 TPMI_ALG_ECC_SCHEME_Unmarshal(TPMI_ALG_ECC_SCHEME *target, BYTE **buffer, INT32 *size, BOOL flag);
1314
1315 #define TPMI_ALG_ECC_SCHEME_Marshal(source, buffer, size) \
1316             TPM2_ALG_ID_Marshal((TPM2_ALG_ID *)(source), buffer, size)
1317 #endif // TPM2_ALG_ECC
1318
1319
1320 // Table 2:165 - Definition of TPMI_ECC_CURVE Type (TypeTable)
1321 #ifdef    TPM2_ALG_ECC
1322 TPM2_RC
1323 TPMI_ECC_CURVE_Unmarshal(TPMI_ECC_CURVE *target, BYTE **buffer, INT32 *size);
1324
1325 #define TPMI_ECC_CURVE_Marshal(source, buffer, size) \
1326             TPM_ECC_CURVE_Marshal((TPM2_ECC_CURVE *)(source), buffer, size)
1327 #endif // TPM2_ALG_ECC
1328
1329
1330 // Table 2:166 - Definition of TPMT_ECC_SCHEME Structure (StructureTable)
1331 #ifdef    TPM2_ALG_ECC
1332 TPM2_RC
1333 TPMT_ECC_SCHEME_Unmarshal(TPMT_ECC_SCHEME *target, BYTE **buffer, INT32 *size, BOOL flag);
1334 UINT16
1335 TPMT_ECC_SCHEME_Marshal(TPMT_ECC_SCHEME *source, BYTE **buffer, INT32 *size);
1336
1337 #endif // TPM2_ALG_ECC
1338
1339
1340 // Table 2:167 - Definition of TPMS_ALGORITHM_DETAIL_ECC Structure  (StructureTable)
1341 #ifdef    TPM2_ALG_ECC
1342 //     TPMS_ALGORITHM_DETAIL_ECC_Unmarshal not referenced
1343 UINT16
1344 TPMS_ALGORITHM_DETAIL_ECC_Marshal(TPMS_ALGORITHM_DETAIL_ECC *source, BYTE **buffer, INT32 *size);
1345
1346 #endif // TPM2_ALG_ECC
1347
1348
1349 // Table 2:168 - Definition of TPMS_SIGNATURE_RSA Structure (StructureTable)
1350 #ifdef    TPM2_ALG_RSA
1351 TPM2_RC
1352 TPMS_SIGNATURE_RSA_Unmarshal(TPMS_SIGNATURE_RSA *target, BYTE **buffer, INT32 *size);
1353 UINT16
1354 TPMS_SIGNATURE_RSA_Marshal(TPMS_SIGNATURE_RSA *source, BYTE **buffer, INT32 *size);
1355
1356 #endif // TPM2_ALG_RSA
1357
1358
1359 // Table 2:169 - Definition of Types for Signature  (TypesTable)
1360 #ifdef    TPM2_ALG_RSA
1361 //   TPMS_SIGNATURE_RSA definition from table 2:169
1362 #ifdef    TPM2_ALG_RSA
1363 #define TPMS_SIGNATURE_RSASSA_Unmarshal(target, buffer, size) \
1364             TPMS_SIGNATURE_RSA_Unmarshal((TPMS_SIGNATURE_RSA *)(target), buffer, size)
1365 #define TPMS_SIGNATURE_RSASSA_Marshal(source, buffer, size) \
1366             TPMS_SIGNATURE_RSA_Marshal((TPMS_SIGNATURE_RSA *)(source), buffer, size)
1367 #endif // TPM2_ALG_RSA
1368 //   TPMS_SIGNATURE_RSA definition from table 2:169
1369 #ifdef    TPM2_ALG_RSA
1370 #define TPMS_SIGNATURE_RSAPSS_Unmarshal(target, buffer, size) \
1371             TPMS_SIGNATURE_RSA_Unmarshal((TPMS_SIGNATURE_RSA *)(target), buffer, size)
1372 #define TPMS_SIGNATURE_RSAPSS_Marshal(source, buffer, size) \
1373             TPMS_SIGNATURE_RSA_Marshal((TPMS_SIGNATURE_RSA *)(source), buffer, size)
1374 #endif // TPM2_ALG_RSA
1375 #endif // TPM2_ALG_RSA
1376
1377
1378 // Table 2:170 - Definition of TPMS_SIGNATURE_ECC Structure (StructureTable)
1379 #ifdef    TPM2_ALG_ECC
1380 TPM2_RC
1381 TPMS_SIGNATURE_ECC_Unmarshal(TPMS_SIGNATURE_ECC *target, BYTE **buffer, INT32 *size);
1382 UINT16
1383 TPMS_SIGNATURE_ECC_Marshal(TPMS_SIGNATURE_ECC *source, BYTE **buffer, INT32 *size);
1384
1385 #endif // TPM2_ALG_ECC
1386
1387
1388 // Table 2:171 - Definition of Types for TPMS_SIGNATUE_ECC (TypesTable)
1389 #ifdef    TPM2_ALG_ECC
1390 //   TPMS_SIGNATURE_ECC definition from table 2:171
1391 #ifdef    TPM2_ALG_ECC
1392 #define TPMS_SIGNATURE_ECDSA_Unmarshal(target, buffer, size) \
1393             TPMS_SIGNATURE_ECC_Unmarshal((TPMS_SIGNATURE_ECC *)(target), buffer, size)
1394 #define TPMS_SIGNATURE_ECDSA_Marshal(source, buffer, size) \
1395             TPMS_SIGNATURE_ECC_Marshal((TPMS_SIGNATURE_ECC *)(source), buffer, size)
1396 #endif // TPM2_ALG_ECC
1397 //   TPMS_SIGNATURE_ECC definition from table 2:171
1398 #ifdef    TPM2_ALG_ECC
1399 #define TPMS_SIGNATURE_SM2_Unmarshal(target, buffer, size) \
1400             TPMS_SIGNATURE_ECC_Unmarshal((TPMS_SIGNATURE_ECC *)(target), buffer, size)
1401 #define TPMS_SIGNATURE_SM2_Marshal(source, buffer, size) \
1402             TPMS_SIGNATURE_ECC_Marshal((TPMS_SIGNATURE_ECC *)(source), buffer, size)
1403 #endif // TPM2_ALG_ECC
1404 //   TPMS_SIGNATURE_ECC definition from table 2:171
1405 #ifdef    TPM2_ALG_ECC
1406 #define TPMS_SIGNATURE_ECSCHNORR_Unmarshal(target, buffer, size) \
1407             TPMS_SIGNATURE_ECC_Unmarshal((TPMS_SIGNATURE_ECC *)(target), buffer, size)
1408 #define TPMS_SIGNATURE_ECSCHNORR_Marshal(source, buffer, size) \
1409             TPMS_SIGNATURE_ECC_Marshal((TPMS_SIGNATURE_ECC *)(source), buffer, size)
1410 #endif // TPM2_ALG_ECC
1411 //   TPMS_SIGNATURE_ECC definition from table 2:171
1412 #ifdef    TPM2_ALG_ECC
1413 #define TPMS_SIGNATURE_ECDAA_Unmarshal(target, buffer, size) \
1414             TPMS_SIGNATURE_ECC_Unmarshal((TPMS_SIGNATURE_ECC *)(target), buffer, size)
1415 #define TPMS_SIGNATURE_ECDAA_Marshal(source, buffer, size) \
1416             TPMS_SIGNATURE_ECC_Marshal((TPMS_SIGNATURE_ECC *)(source), buffer, size)
1417 #endif // TPM2_ALG_ECC
1418 #endif // TPM2_ALG_ECC
1419
1420
1421 // Table 2:172 - Definition of TPMU_SIGNATURE Union  (UnionTable)
1422 TPM2_RC
1423 TPMU_SIGNATURE_Unmarshal(TPMU_SIGNATURE *target, BYTE **buffer, INT32 *size, UINT32 selector);
1424 UINT16
1425 TPMU_SIGNATURE_Marshal(TPMU_SIGNATURE *source, BYTE **buffer, INT32 *size, UINT32 selector);
1426
1427
1428 // Table 2:173 - Definition of TPMT_SIGNATURE Structure (StructureTable)
1429 TPM2_RC
1430 TPMT_SIGNATURE_Unmarshal(TPMT_SIGNATURE *target, BYTE **buffer, INT32 *size, BOOL flag);
1431 UINT16
1432 TPMT_SIGNATURE_Marshal(TPMT_SIGNATURE *source, BYTE **buffer, INT32 *size);
1433
1434
1435 // Table 2:174 - Definition of TPMU_ENCRYPTED_SECRET Union  (UnionTable)
1436 //     TPMU_ENCRYPTED_SECRET_Unmarshal not referenced
1437 //     TPMU_ENCRYPTED_SECRET_Marshal not referenced
1438
1439
1440 // Table 2:175 - Definition of TPM2B_ENCRYPTED_SECRET Structure (StructureTable)
1441 TPM2_RC
1442 TPM2B_ENCRYPTED_SECRET_Unmarshal(TPM2B_ENCRYPTED_SECRET *target, BYTE **buffer, INT32 *size);
1443 UINT16
1444 TPM2B_ENCRYPTED_SECRET_Marshal(TPM2B_ENCRYPTED_SECRET *source, BYTE **buffer, INT32 *size);
1445
1446
1447 // Table 2:176 - Definition of TPMI_ALG_PUBLIC Type (TypeTable)
1448 TPM2_RC
1449 TPMI_ALG_PUBLIC_Unmarshal(TPMI_ALG_PUBLIC *target, BYTE **buffer, INT32 *size);
1450
1451 #define TPM_ALG_ID_Unmarshal(target, buffer, size) \
1452            UINT16_Unmarshal((UINT16 *)(target), buffer, size)
1453 #define TPM_ALG_ID_Marshal(source, buffer, size) \
1454             UINT16_Marshal((UINT16 *)(source), buffer, size)
1455 #define TPMI_ALG_PUBLIC_Marshal(source, buffer, size) \
1456             TPM_ALG_ID_Marshal((TPM2_ALG_ID *)(source), buffer, size)
1457
1458
1459 // Table 2:177 - Definition of TPMU_PUBLIC_ID Union  (UnionTable)
1460 TPM2_RC
1461 TPMU_PUBLIC_ID_Unmarshal(TPMU_PUBLIC_ID *target, BYTE **buffer, INT32 *size, UINT32 selector);
1462 UINT16
1463 TPMU_PUBLIC_ID_Marshal(TPMU_PUBLIC_ID *source, BYTE **buffer, INT32 *size, UINT32 selector);
1464
1465
1466 // Table 2:178 - Definition of TPMS_KEYEDHASH_PARMS Structure (StructureTable)
1467 #define TPMS_KEYEDHASH_PARMS_Unmarshal(target, buffer, size) \
1468             TPMT_KEYEDHASH_SCHEME_Unmarshal((TPMT_KEYEDHASH_SCHEME *)&((target)->scheme), buffer, size, 1)
1469 #define TPMS_KEYEDHASH_PARMS_Marshal(source, buffer, size) \
1470             TPMT_KEYEDHASH_SCHEME_Marshal((TPMT_KEYEDHASH_SCHEME *)&((source)->scheme), buffer, size)
1471
1472
1473 // Table 2:179 - Definition of TPMS_ASYM_PARMS Structure  (StructureTable)
1474 //     TPMS_ASYM_PARMS_Unmarshal not referenced
1475 //     TPMS_ASYM_PARMS_Marshal not referenced
1476
1477
1478 // Table 2:180 - Definition of TPMS_RSA_PARMS Structure (StructureTable)
1479 #ifdef    TPM2_ALG_RSA
1480 TPM2_RC
1481 TPMS_RSA_PARMS_Unmarshal(TPMS_RSA_PARMS *target, BYTE **buffer, INT32 *size);
1482 UINT16
1483 TPMS_RSA_PARMS_Marshal(TPMS_RSA_PARMS *source, BYTE **buffer, INT32 *size);
1484
1485 #endif // TPM2_ALG_RSA
1486
1487
1488 // Table 2:181 - Definition of TPMS_ECC_PARMS Structure (StructureTable)
1489 #ifdef    TPM2_ALG_ECC
1490 TPM2_RC
1491 TPMS_ECC_PARMS_Unmarshal(TPMS_ECC_PARMS *target, BYTE **buffer, INT32 *size);
1492 UINT16
1493 TPMS_ECC_PARMS_Marshal(TPMS_ECC_PARMS *source, BYTE **buffer, INT32 *size);
1494
1495 #endif // TPM2_ALG_ECC
1496
1497
1498 // Table 2:182 - Definition of TPMU_PUBLIC_PARMS Union  (UnionTable)
1499 TPM2_RC
1500 TPMU_PUBLIC_PARMS_Unmarshal(TPMU_PUBLIC_PARMS *target, BYTE **buffer, INT32 *size, UINT32 selector);
1501 UINT16
1502 TPMU_PUBLIC_PARMS_Marshal(TPMU_PUBLIC_PARMS *source, BYTE **buffer, INT32 *size, UINT32 selector);
1503
1504
1505 // Table 2:183 - Definition of TPMT_PUBLIC_PARMS Structure (StructureTable)
1506 TPM2_RC
1507 TPMT_PUBLIC_PARMS_Unmarshal(TPMT_PUBLIC_PARMS *target, BYTE **buffer, INT32 *size);
1508
1509 //     TPMT_PUBLIC_PARMS_Marshal not referenced
1510
1511
1512 // Table 2:184 - Definition of TPMT_PUBLIC Structure (StructureTable)
1513 TPM2_RC
1514 TPMT_PUBLIC_Unmarshal(TPMT_PUBLIC *target, BYTE **buffer, INT32 *size, BOOL flag);
1515 UINT16
1516 TPMT_PUBLIC_Marshal(TPMT_PUBLIC *source, BYTE **buffer, INT32 *size);
1517
1518
1519 // Table 2:185 - Definition of TPM2B_PUBLIC Structure (StructureTable)
1520 TPM2_RC
1521 TPM2B_PUBLIC_Unmarshal(TPM2B_PUBLIC *target, BYTE **buffer, INT32 *size, BOOL flag);
1522 UINT16
1523 TPM2B_PUBLIC_Marshal(TPM2B_PUBLIC *source, BYTE **buffer, INT32 *size);
1524
1525
1526 // Table 2:186 - Definition of TPM2B_PRIVATE_VENDOR_SPECIFIC Structure (StructureTable)
1527 //     TPM2B_PRIVATE_VENDOR_SPECIFIC_Unmarshal not referenced
1528 //     TPM2B_PRIVATE_VENDOR_SPECIFIC_Marshal not referenced
1529
1530
1531 // Table 2:187 - Definition of TPMU_SENSITIVE_COMPOSITE Union  (UnionTable)
1532 TPM2_RC
1533 TPMU_SENSITIVE_COMPOSITE_Unmarshal(TPMU_SENSITIVE_COMPOSITE *target, BYTE **buffer, INT32 *size, UINT32 selector);
1534 UINT16
1535 TPMU_SENSITIVE_COMPOSITE_Marshal(TPMU_SENSITIVE_COMPOSITE *source, BYTE **buffer, INT32 *size, UINT32 selector);
1536
1537
1538 // Table 2:188 - Definition of TPMT_SENSITIVE Structure (StructureTable)
1539 TPM2_RC
1540 TPMT_SENSITIVE_Unmarshal(TPMT_SENSITIVE *target, BYTE **buffer, INT32 *size);
1541 UINT16
1542 TPMT_SENSITIVE_Marshal(TPMT_SENSITIVE *source, BYTE **buffer, INT32 *size);
1543
1544
1545 // Table 2:189 - Definition of TPM2B_SENSITIVE Structure  (StructureTable)
1546 TPM2_RC
1547 TPM2B_SENSITIVE_Unmarshal(TPM2B_SENSITIVE *target, BYTE **buffer, INT32 *size);
1548
1549 //     TPM2B_SENSITIVE_Marshal not referenced
1550
1551
1552 // Table 2:190 - Definition of _PRIVATE Structure  (StructureTable)
1553 //     _PRIVATE_Unmarshal not referenced
1554 //     _PRIVATE_Marshal not referenced
1555
1556
1557 // Table 2:191 - Definition of TPM2B_PRIVATE Structure  (StructureTable)
1558 TPM2_RC
1559 TPM2B_PRIVATE_Unmarshal(TPM2B_PRIVATE *target, BYTE **buffer, INT32 *size);
1560 UINT16
1561 TPM2B_PRIVATE_Marshal(TPM2B_PRIVATE *source, BYTE **buffer, INT32 *size);
1562
1563
1564 // Table 2:192 - Definition of _ID_OBJECT Structure  (StructureTable)
1565 //     _ID_OBJECT_Unmarshal not referenced
1566 //     _ID_OBJECT_Marshal not referenced
1567
1568
1569 // Table 2:193 - Definition of TPM2B_ID_OBJECT Structure  (StructureTable)
1570 TPM2_RC
1571 TPM2B_ID_OBJECT_Unmarshal(TPM2B_ID_OBJECT *target, BYTE **buffer, INT32 *size);
1572 UINT16
1573 TPM2B_ID_OBJECT_Marshal(TPM2B_ID_OBJECT *source, BYTE **buffer, INT32 *size);
1574
1575
1576 // Table 2:194 - Definition of TPM2_NV_INDEX Bits  (BitsTable)
1577 //     TPM2_NV_INDEX_Unmarshal not referenced
1578 //     TPM2_NV_INDEX_Marshal not referenced
1579
1580
1581 // Table 2:195 - Definition of TPMA_NV Bits (BitsTable)
1582 TPM2_RC
1583 TPMA_NV_Unmarshal(TPMA_NV *target, BYTE **buffer, INT32 *size);
1584
1585 #define TPMA_NV_Marshal(source, buffer, size) \
1586             UINT32_Marshal((UINT32 *)(source), buffer, size)
1587
1588
1589 // Table 2:196 - Definition of TPMS_NV_PUBLIC Structure (StructureTable)
1590 TPM2_RC
1591 TPMS_NV_PUBLIC_Unmarshal(TPMS_NV_PUBLIC *target, BYTE **buffer, INT32 *size);
1592 UINT16
1593 TPMS_NV_PUBLIC_Marshal(TPMS_NV_PUBLIC *source, BYTE **buffer, INT32 *size);
1594
1595
1596 // Table 2:197 - Definition of TPM2B_NV_PUBLIC Structure (StructureTable)
1597 TPM2_RC
1598 TPM2B_NV_PUBLIC_Unmarshal(TPM2B_NV_PUBLIC *target, BYTE **buffer, INT32 *size);
1599 UINT16
1600 TPM2B_NV_PUBLIC_Marshal(TPM2B_NV_PUBLIC *source, BYTE **buffer, INT32 *size);
1601
1602
1603 // Table 2:198 - Definition of TPM2B_CONTEXT_SENSITIVE Structure  (StructureTable)
1604 //     TPM2B_CONTEXT_SENSITIVE_Unmarshal not referenced
1605 //     TPM2B_CONTEXT_SENSITIVE_Marshal not referenced
1606
1607
1608 // Table 2:199 - Definition of TPMS_CONTEXT_DATA Structure  (StructureTable)
1609 //     TPMS_CONTEXT_DATA_Unmarshal not referenced
1610 //     TPMS_CONTEXT_DATA_Marshal not referenced
1611
1612
1613 // Table 2:200 - Definition of TPM2B_CONTEXT_DATA Structure  (StructureTable)
1614 TPM2_RC
1615 TPM2B_CONTEXT_DATA_Unmarshal(TPM2B_CONTEXT_DATA *target, BYTE **buffer, INT32 *size);
1616 UINT16
1617 TPM2B_CONTEXT_DATA_Marshal(TPM2B_CONTEXT_DATA *source, BYTE **buffer, INT32 *size);
1618
1619
1620 // Table 2:201 - Definition of TPMS_CONTEXT Structure (StructureTable)
1621 TPM2_RC
1622 TPMS_CONTEXT_Unmarshal(TPMS_CONTEXT *target, BYTE **buffer, INT32 *size);
1623 UINT16
1624 TPMS_CONTEXT_Marshal(TPMS_CONTEXT *source, BYTE **buffer, INT32 *size);
1625
1626
1627 // Table 2:203 - Definition of TPMS_CREATION_DATA Structure  (StructureTable)
1628 //     TPMS_CREATION_DATA_Unmarshal not referenced
1629 UINT16
1630 TPMS_CREATION_DATA_Marshal(TPMS_CREATION_DATA *source, BYTE **buffer, INT32 *size);
1631
1632
1633 // Table 2:204 - Definition of TPM2B_CREATION_DATA Structure  (StructureTable)
1634 //     TPM2B_CREATION_DATA_Unmarshal not referenced
1635 UINT16
1636 TPM2B_CREATION_DATA_Marshal(TPM2B_CREATION_DATA *source, BYTE **buffer, INT32 *size);
1637
1638 // Array Marshal/Unmarshal for TPMS_TAGGED_PROPERTY
1639 //     TPMS_TAGGED_PROPERTY_Array_Unmarshal not referenced
1640 UINT16
1641 TPMS_TAGGED_PROPERTY_Array_Marshal(TPMS_TAGGED_PROPERTY *source, BYTE **buffer, INT32 *size, INT32 count);
1642
1643 // Array Marshal/Unmarshal for TPMS_ALG_PROPERTY
1644 //     TPMS_ALG_PROPERTY_Array_Unmarshal not referenced
1645 UINT16
1646 TPMS_ALG_PROPERTY_Array_Marshal(TPMS_ALG_PROPERTY *source, BYTE **buffer, INT32 *size, INT32 count);
1647
1648 // Array Marshal/Unmarshal for TPMS_PCR_SELECTION
1649 TPM2_RC
1650 TPMS_PCR_SELECTION_Array_Unmarshal(TPMS_PCR_SELECTION *target, BYTE **buffer, INT32 *size, INT32 count);
1651 UINT16
1652 TPMS_PCR_SELECTION_Array_Marshal(TPMS_PCR_SELECTION *source, BYTE **buffer, INT32 *size, INT32 count);
1653
1654 // Array Marshal/Unmarshal for TPMT_HA
1655 TPM2_RC
1656 TPMT_HA_Array_Unmarshal(TPMT_HA *target, BYTE **buffer, INT32 *size, BOOL flag, INT32 count);
1657 UINT16
1658 TPMT_HA_Array_Marshal(TPMT_HA *source, BYTE **buffer, INT32 *size, INT32 count);
1659
1660 // Array Marshal/Unmarshal for BYTE
1661 TPM2_RC
1662 BYTE_Array_Unmarshal(BYTE *target, BYTE **buffer, INT32 *size, INT32 count);
1663 UINT16
1664 BYTE_Array_Marshal(BYTE *source, BYTE **buffer, INT32 *size, INT32 count);
1665
1666 // Array Marshal/Unmarshal for TPM2_HANDLE
1667 //     TPM2_HANDLE_Array_Unmarshal not referenced
1668 UINT16
1669 TPM_HANDLE_Array_Marshal(TPM2_HANDLE *source, BYTE **buffer, INT32 *size, INT32 count);
1670
1671 // Array Marshal/Unmarshal for TPMA_CC
1672 //     TPMA_CC_Array_Unmarshal not referenced
1673 UINT16
1674 TPMA_CC_Array_Marshal(TPMA_CC *source, BYTE **buffer, INT32 *size, INT32 count);
1675
1676 // Array Marshal/Unmarshal for TPMS_TAGGED_PCR_SELECT
1677 //     TPMS_TAGGED_PCR_SELECT_Array_Unmarshal not referenced
1678 UINT16
1679 TPMS_TAGGED_PCR_SELECT_Array_Marshal(TPMS_TAGGED_PCR_SELECT *source, BYTE **buffer, INT32 *size, INT32 count);
1680
1681 // Array Marshal/Unmarshal for TPM2_ECC_CURVE
1682 #ifdef    TPM2_ALG_ECC
1683 //     TPM2_ECC_CURVE_Array_Unmarshal not referenced
1684 UINT16
1685 TPM_ECC_CURVE_Array_Marshal(TPM2_ECC_CURVE *source, BYTE **buffer, INT32 *size, INT32 count);
1686
1687 #endif // TPM2_ALG_ECC
1688 // Array Marshal/Unmarshal for TPM2B_DIGEST
1689 TPM2_RC
1690 TPM2B_DIGEST_Array_Unmarshal(TPM2B_DIGEST *target, BYTE **buffer, INT32 *size, INT32 count);
1691 UINT16
1692 TPM2B_DIGEST_Array_Marshal(TPM2B_DIGEST *source, BYTE **buffer, INT32 *size, INT32 count);
1693
1694 // Array Marshal/Unmarshal for TPM2_CC
1695 TPM2_RC
1696 TPM_CC_Array_Unmarshal(TPM2_CC *target, BYTE **buffer, INT32 *size, INT32 count);
1697 UINT16
1698 TPM_CC_Array_Marshal(TPM2_CC *source, BYTE **buffer, INT32 *size, INT32 count);
1699
1700 // Array Marshal/Unmarshal for TPM2_ALG_ID
1701 TPM2_RC
1702 TPM_ALG_ID_Array_Unmarshal(TPM2_ALG_ID *target, BYTE **buffer, INT32 *size, INT32 count);
1703 UINT16
1704 TPM_ALG_ID_Array_Marshal(TPM2_ALG_ID *source, BYTE **buffer, INT32 *size, INT32 count);
1705
1706 #endif // _MARSHAL_FP_H