2 * Copyright 2018 Intel Corporation
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
16 // Author: Arun Kumar Sekar
22 #include <sapi/tpm20.h>
23 #include <sapi/implementation.h>
24 #define pAssert(a) ((void)0)
25 #define UNREFERENCED(a) ((void)(a))
27 #if NO_AUTO_ALIGN == YES || LITTLE_ENDIAN_TPM == YES
28 #define BYTE_ARRAY_TO_UINT8(b) (UINT8)((b)[0])
30 #define BYTE_ARRAY_TO_UINT16(b) (UINT16)( ((b)[0] << 8) \
33 #define BYTE_ARRAY_TO_UINT32(b) (UINT32)( ((b)[0] << 24) \
38 #define BYTE_ARRAY_TO_UINT64(b) (UINT64)( ((UINT64)(b)[0] << 56) \
39 + ((UINT64)(b)[1] << 48) \
40 + ((UINT64)(b)[2] << 40) \
41 + ((UINT64)(b)[3] << 32) \
42 + ((UINT64)(b)[4] << 24) \
43 + ((UINT64)(b)[5] << 16) \
44 + ((UINT64)(b)[6] << 8) \
47 // Disaggregate a UINT into a byte array
48 #define UINT8_TO_BYTE_ARRAY(i, b) ((b)[0] = (BYTE)(i), i)
50 #define UINT16_TO_BYTE_ARRAY(i, b) ((b)[0] = (BYTE)((i) >> 8), \
51 (b)[1] = (BYTE) (i), \
54 #define UINT32_TO_BYTE_ARRAY(i, b) ((b)[0] = (BYTE)((i) >> 24), \
55 (b)[1] = (BYTE)((i) >> 16), \
56 (b)[2] = (BYTE)((i) >> 8), \
57 (b)[3] = (BYTE) (i), \
60 #define UINT64_TO_BYTE_ARRAY(i, b) ((b)[0] = (BYTE)((i) >> 56), \
61 (b)[1] = (BYTE)((i) >> 48), \
62 (b)[2] = (BYTE)((i) >> 40), \
63 (b)[3] = (BYTE)((i) >> 32), \
64 (b)[4] = (BYTE)((i) >> 24), \
65 (b)[5] = (BYTE)((i) >> 16), \
66 (b)[6] = (BYTE)((i) >> 8), \
67 (b)[7] = (BYTE) (i), \
72 // the big-endian macros for machines that allow unaligned memory access
73 // Aggregate a byte array into a UINT
74 #define BYTE_ARRAY_TO_UINT8(b) *((UINT8 *)(b))
75 #define BYTE_ARRAY_TO_UINT16(b) *((UINT16 *)(b))
76 #define BYTE_ARRAY_TO_UINT32(b) *((UINT32 *)(b))
77 #define BYTE_ARRAY_TO_UINT64(b) *((UINT64 *)(b))
79 // Disaggregate a UINT into a byte array
82 #define UINT8_TO_BYTE_ARRAY(i, b) (*((UINT8 *)(b)) = (i))
83 #define UINT16_TO_BYTE_ARRAY(i, b) (*((UINT16 *)(b)) = (i))
84 #define UINT32_TO_BYTE_ARRAY(i, b) (*((UINT32 *)(b)) = (i))
85 #define UINT64_TO_BYTE_ARRAY(i, b) (*((UINT64 *)(b)) = (i))
88 #endif // NO_AUTO_ALIGN == YES
93 // Table 2:3 - Definition of Base Types (BaseTypes)
94 // UINT8 definition from table 2:3
96 UINT8_Unmarshal(UINT8 *target, BYTE **buffer, INT32 *size);
98 UINT8_Marshal(UINT8 *source, BYTE **buffer, INT32 *size);
100 // BYTE definition from table 2:3
101 #define BYTE_Unmarshal(target, buffer, size) \
102 UINT8_Unmarshal((UINT8 *)(target), buffer, size)
103 #define BYTE_Marshal(source, buffer, size) \
104 UINT8_Marshal((UINT8 *)(source), buffer, size)
105 // INT8 definition from table 2:3
106 #define INT8_Unmarshal(target, buffer, size) \
107 UINT8_Unmarshal((UINT8 *)(target), buffer, size)
108 // INT8_Marshal not referenced
109 // UINT16 definition from table 2:3
111 UINT16_Unmarshal(UINT16 *target, BYTE **buffer, INT32 *size);
113 UINT16_Marshal(UINT16 *source, BYTE **buffer, INT32 *size);
115 // INT16 definition from table 2:3
116 // INT16_Unmarshal not referenced
117 // INT16_Marshal not referenced
118 // UINT32 definition from table 2:3
120 UINT32_Unmarshal(UINT32 *target, BYTE **buffer, INT32 *size);
122 UINT32_Marshal(UINT32 *source, BYTE **buffer, INT32 *size);
124 // INT32 definition from table 2:3
125 #define INT32_Unmarshal(target, buffer, size) \
126 UINT32_Unmarshal((UINT32 *)(target), buffer, size)
127 // INT32_Marshal not referenced
128 // UINT64 definition from table 2:3
130 UINT64_Unmarshal(UINT64 *target, BYTE **buffer, INT32 *size);
132 UINT64_Marshal(UINT64 *source, BYTE **buffer, INT32 *size);
134 // INT64 definition from table 2:3
135 // INT64_Unmarshal not referenced
136 // INT64_Marshal not referenced
139 // Table 2:4 - Defines for Logic Values (DefinesTable)
142 // Table 2:5 - Definition of Types for Documentation Clarity (TypesTable)
143 // UINT32 definition from table 2:5
144 // TPM_ALGORITHM_ID_Unmarshal not referenced
145 // TPM_ALGORITHM_ID_Marshal not referenced
146 // UINT32 definition from table 2:5
147 // TPM_MODIFIER_INDICATOR_Unmarshal not referenced
148 // TPM_MODIFIER_INDICATOR_Marshal not referenced
149 // UINT32 definition from table 2:5
150 // TPM_AUTHORIZATION_SIZE_Unmarshal not referenced
151 // TPM_AUTHORIZATION_SIZE_Marshal not referenced
152 // UINT32 definition from table 2:5
153 // TPM_PARAMETER_SIZE_Unmarshal not referenced
154 // TPM_PARAMETER_SIZE_Marshal not referenced
155 // UINT16 definition from table 2:5
156 // TPM_KEY_SIZE_Unmarshal not referenced
157 // TPM_KEY_SIZE_Marshal not referenced
158 // UINT16 definition from table 2:5
159 #define TPM_KEY_BITS_Unmarshal(target, buffer, size) \
160 UINT16_Unmarshal((UINT16 *)(target), buffer, size)
161 #define TPM_KEY_BITS_Marshal(source, buffer, size) \
162 UINT16_Marshal((UINT16 *)(source), buffer, size)
165 // Table 2:6 - Definition of TPM_SPEC Constants (ConstantsTable)
166 // TPM_SPEC_Unmarshal not referenced
167 // TPM_SPEC_Marshal not referenced
170 // Table 2:7 - Definition of TPM_GENERATED Constants (ConstantsTable)
171 // TPM_GENERATED_Unmarshal not referenced
172 #define TPM_GENERATED_Marshal(source, buffer, size) \
173 UINT32_Marshal((UINT32 *)(source), buffer, size)
176 // Table 2:9 - Definition of TPM_ALG_ID Constants (ConstantsTable)
177 #define TPM_ALG_ID_Unmarshal(target, buffer, size) \
178 UINT16_Unmarshal((UINT16 *)(target), buffer, size)
179 #define TPM_ALG_ID_Marshal(source, buffer, size) \
180 UINT16_Marshal((UINT16 *)(source), buffer, size)
183 // Table 2:10 - Definition of TPM_ECC_CURVE Constants (ConstantsTable)
185 #define TPM_ECC_CURVE_Unmarshal(target, buffer, size) \
186 UINT16_Unmarshal((UINT16 *)(target), buffer, size)
187 #define TPM_ECC_CURVE_Marshal(source, buffer, size) \
188 UINT16_Marshal((UINT16 *)(source), buffer, size)
189 #endif // TPM_ALG_ECC
192 // Table 2:13 - Definition of TPM_CC Constants (ConstantsTable)
193 #define TPM_CC_Unmarshal(target, buffer, size) \
194 UINT32_Unmarshal((UINT32 *)(target), buffer, size)
195 #define TPM_CC_Marshal(source, buffer, size) \
196 UINT32_Marshal((UINT32 *)(source), buffer, size)
199 // Table 2:17 - Definition of TPM_RC Constants (ConstantsTable)
200 // TPM_RC_Unmarshal not referenced
201 #define TPM_RC_Marshal(source, buffer, size) \
202 UINT32_Marshal((UINT32 *)(source), buffer, size)
205 // Table 2:18 - Definition of TPM_CLOCK_ADJUST Constants (ConstantsTable)
207 TPM_CLOCK_ADJUST_Unmarshal(TPM_CLOCK_ADJUST *target, BYTE **buffer, INT32 *size);
209 // TPM_CLOCK_ADJUST_Marshal not referenced
212 // Table 2:19 - Definition of TPM_EO Constants (ConstantsTable)
214 TPM_EO_Unmarshal(TPM_EO *target, BYTE **buffer, INT32 *size);
216 // TPM_EO_Marshal not referenced
219 // Table 2:20 - Definition of TPM_ST Constants (ConstantsTable)
220 #define TPM_ST_Unmarshal(target, buffer, size) \
221 UINT16_Unmarshal((UINT16 *)(target), buffer, size)
222 #define TPM_ST_Marshal(source, buffer, size) \
223 UINT16_Marshal((UINT16 *)(source), buffer, size)
226 // Table 2:21 - Definition of TPM_SU Constants (ConstantsTable)
228 TPM_SU_Unmarshal(TPM_SU *target, BYTE **buffer, INT32 *size);
230 // TPM_SU_Marshal not referenced
233 // Table 2:22 - Definition of TPM_SE Constants (ConstantsTable)
235 TPM_SE_Unmarshal(TPM_SE *target, BYTE **buffer, INT32 *size);
237 // TPM_SE_Marshal not referenced
240 // Table 2:23 - Definition of TPM_CAP Constants (ConstantsTable)
242 TPM_CAP_Unmarshal(TPM_CAP *target, BYTE **buffer, INT32 *size);
244 #define TPM_CAP_Marshal(source, buffer, size) \
245 UINT32_Marshal((UINT32 *)(source), buffer, size)
248 // Table 2:24 - Definition of TPM_PT Constants (ConstantsTable)
249 // TPM_PT_Unmarshal not referenced
250 #define TPM_PT_Marshal(source, buffer, size) \
251 UINT32_Marshal((UINT32 *)(source), buffer, size)
254 // Table 2:25 - Definition of TPM_PT_PCR Constants (ConstantsTable)
255 // TPM_PT_PCR_Unmarshal not referenced
256 // TPM_PT_PCR_Marshal not referenced
259 // Table 2:26 - Definition of TPM_PS Constants (ConstantsTable)
260 // TPM_PS_Unmarshal not referenced
261 // TPM_PS_Marshal not referenced
264 // Table 2:27 - Definition of Types for Handles (TypesTable)
265 // UINT32 definition from table 2:27
266 #define TPM_HANDLE_Unmarshal(target, buffer, size) \
267 UINT32_Unmarshal((UINT32 *)(target), buffer, size)
268 #define TPM_HANDLE_Marshal(source, buffer, size) \
269 UINT32_Marshal((UINT32 *)(source), buffer, size)
272 // Table 2:28 - Definition of TPM_HT Constants (ConstantsTable)
273 // TPM_HT_Unmarshal not referenced
274 // TPM_HT_Marshal not referenced
277 // Table 2:29 - Definition of TPM_RH Constants (ConstantsTable)
278 // TPM_RH_Unmarshal not referenced
279 // TPM_RH_Marshal not referenced
282 // Table 2:30 - Definition of TPM_HC Constants (ConstantsTable)
283 // TPM_HC_Unmarshal not referenced
284 // TPM_HC_Marshal not referenced
287 // Table 2:31 - Definition of TPMA_ALGORITHM Bits (BitsTable)
288 // TPMA_ALGORITHM_Unmarshal not referenced
289 #define TPMA_ALGORITHM_Marshal(source, buffer, size) \
290 UINT32_Marshal((UINT32 *)(source), buffer, size)
293 // Table 2:32 - Definition of TPMA_OBJECT Bits (BitsTable)
295 TPMA_OBJECT_Unmarshal(TPMA_OBJECT *target, BYTE **buffer, INT32 *size);
297 #define TPMA_OBJECT_Marshal(source, buffer, size) \
298 UINT32_Marshal((UINT32 *)(source), buffer, size)
301 // Table 2:33 - Definition of TPMA_SESSION Bits (BitsTable)
303 TPMA_SESSION_Unmarshal(TPMA_SESSION *target, BYTE **buffer, INT32 *size);
305 #define TPMA_SESSION_Marshal(source, buffer, size) \
306 UINT8_Marshal((UINT8 *)(source), buffer, size)
309 // Table 2:34 - Definition of TPMA_LOCALITY Bits (BitsTable)
310 #define TPMA_LOCALITY_Unmarshal(target, buffer, size) \
311 UINT8_Unmarshal((UINT8 *)(target), buffer, size)
312 #define TPMA_LOCALITY_Marshal(source, buffer, size) \
313 UINT8_Marshal((UINT8 *)(source), buffer, size)
316 // Table 2:35 - Definition of TPMA_PERMANENT Bits (BitsTable)
317 // TPMA_PERMANENT_Unmarshal not referenced
318 // TPMA_PERMANENT_Marshal not referenced
321 // Table 2:36 - Definition of TPMA_STARTUP_CLEAR Bits (BitsTable)
322 // TPMA_STARTUP_CLEAR_Unmarshal not referenced
323 // TPMA_STARTUP_CLEAR_Marshal not referenced
326 // Table 2:37 - Definition of TPMA_MEMORY Bits (BitsTable)
327 // TPMA_MEMORY_Unmarshal not referenced
328 // TPMA_MEMORY_Marshal not referenced
331 // Table 2:38 - Definition of TPMA_CC Bits (BitsTable)
332 // TPMA_CC_Unmarshal not referenced
333 #define TPMA_CC_Marshal(source, buffer, size) \
334 UINT32_Marshal((UINT32 *)(source), buffer, size)
337 // Table 2:39 - Definition of TPMI_YES_NO Type (TypeTable)
339 TPMI_YES_NO_Unmarshal(TPMI_YES_NO *target, BYTE **buffer, INT32 *size);
341 #define TPMI_YES_NO_Marshal(source, buffer, size) \
342 BYTE_Marshal((BYTE *)(source), buffer, size)
345 // Table 2:40 - Definition of TPMI_DH_OBJECT Type (TypeTable)
347 TPMI_DH_OBJECT_Unmarshal(TPMI_DH_OBJECT *target, BYTE **buffer, INT32 *size, BOOL flag);
349 #define TPMI_DH_OBJECT_Marshal(source, buffer, size) \
350 TPM_HANDLE_Marshal((TPM_HANDLE *)(source), buffer, size)
353 // Table 2:41 - Definition of TPMI_DH_PERSISTENT Type (TypeTable)
355 TPMI_DH_PERSISTENT_Unmarshal(TPMI_DH_PERSISTENT *target, BYTE **buffer, INT32 *size);
357 // TPMI_DH_PERSISTENT_Marshal not referenced
360 // Table 2:42 - Definition of TPMI_DH_ENTITY Type (TypeTable)
362 TPMI_DH_ENTITY_Unmarshal(TPMI_DH_ENTITY *target, BYTE **buffer, INT32 *size, BOOL flag);
364 // TPMI_DH_ENTITY_Marshal not referenced
367 // Table 2:43 - Definition of TPMI_DH_PCR Type (TypeTable)
369 TPMI_DH_PCR_Unmarshal(TPMI_DH_PCR *target, BYTE **buffer, INT32 *size, BOOL flag);
371 // TPMI_DH_PCR_Marshal not referenced
374 // Table 2:44 - Definition of TPMI_SH_AUTH_SESSION Type (TypeTable)
376 TPMI_SH_AUTH_SESSION_Unmarshal(TPMI_SH_AUTH_SESSION *target, BYTE **buffer, INT32 *size, BOOL flag);
378 #define TPMI_SH_AUTH_SESSION_Marshal(source, buffer, size) \
379 TPM_HANDLE_Marshal((TPM_HANDLE *)(source), buffer, size)
382 // Table 2:45 - Definition of TPMI_SH_HMAC Type (TypeTable)
384 TPMI_SH_HMAC_Unmarshal(TPMI_SH_HMAC *target, BYTE **buffer, INT32 *size);
386 // TPMI_SH_HMAC_Marshal not referenced
389 // Table 2:46 - Definition of TPMI_SH_POLICY Type (TypeTable)
391 TPMI_SH_POLICY_Unmarshal(TPMI_SH_POLICY *target, BYTE **buffer, INT32 *size);
393 // TPMI_SH_POLICY_Marshal not referenced
396 // Table 2:47 - Definition of TPMI_DH_CONTEXT Type (TypeTable)
398 TPMI_DH_CONTEXT_Unmarshal(TPMI_DH_CONTEXT *target, BYTE **buffer, INT32 *size);
400 #define TPMI_DH_CONTEXT_Marshal(source, buffer, size) \
401 TPM_HANDLE_Marshal((TPM_HANDLE *)(source), buffer, size)
404 // Table 2:48 - Definition of TPMI_RH_HIERARCHY Type (TypeTable)
406 TPMI_RH_HIERARCHY_Unmarshal(TPMI_RH_HIERARCHY *target, BYTE **buffer, INT32 *size, BOOL flag);
408 #define TPMI_RH_HIERARCHY_Marshal(source, buffer, size) \
409 TPM_HANDLE_Marshal((TPM_HANDLE *)(source), buffer, size)
412 // Table 2:49 - Definition of TPMI_RH_ENABLES Type (TypeTable)
414 TPMI_RH_ENABLES_Unmarshal(TPMI_RH_ENABLES *target, BYTE **buffer, INT32 *size, BOOL flag);
416 // TPMI_RH_ENABLES_Marshal not referenced
419 // Table 2:50 - Definition of TPMI_RH_HIERARCHY_AUTH Type (TypeTable)
421 TPMI_RH_HIERARCHY_AUTH_Unmarshal(TPMI_RH_HIERARCHY_AUTH *target, BYTE **buffer, INT32 *size);
423 // TPMI_RH_HIERARCHY_AUTH_Marshal not referenced
426 // Table 2:51 - Definition of TPMI_RH_PLATFORM Type (TypeTable)
428 TPMI_RH_PLATFORM_Unmarshal(TPMI_RH_PLATFORM *target, BYTE **buffer, INT32 *size);
430 // TPMI_RH_PLATFORM_Marshal not referenced
433 // Table 2:52 - Definition of TPMI_RH_OWNER Type (TypeTable)
434 // TPMI_RH_OWNER_Unmarshal not referenced
435 // TPMI_RH_OWNER_Marshal not referenced
438 // Table 2:53 - Definition of TPMI_RH_ENDORSEMENT Type (TypeTable)
440 TPMI_RH_ENDORSEMENT_Unmarshal(TPMI_RH_ENDORSEMENT *target, BYTE **buffer, INT32 *size, BOOL flag);
442 // TPMI_RH_ENDORSEMENT_Marshal not referenced
445 // Table 2:54 - Definition of TPMI_RH_PROVISION Type (TypeTable)
447 TPMI_RH_PROVISION_Unmarshal(TPMI_RH_PROVISION *target, BYTE **buffer, INT32 *size);
449 // TPMI_RH_PROVISION_Marshal not referenced
452 // Table 2:55 - Definition of TPMI_RH_CLEAR Type (TypeTable)
454 TPMI_RH_CLEAR_Unmarshal(TPMI_RH_CLEAR *target, BYTE **buffer, INT32 *size);
456 // TPMI_RH_CLEAR_Marshal not referenced
459 // Table 2:56 - Definition of TPMI_RH_NV_AUTH Type (TypeTable)
461 TPMI_RH_NV_AUTH_Unmarshal(TPMI_RH_NV_AUTH *target, BYTE **buffer, INT32 *size);
463 // TPMI_RH_NV_AUTH_Marshal not referenced
466 // Table 2:57 - Definition of TPMI_RH_LOCKOUT Type (TypeTable)
468 TPMI_RH_LOCKOUT_Unmarshal(TPMI_RH_LOCKOUT *target, BYTE **buffer, INT32 *size);
470 // TPMI_RH_LOCKOUT_Marshal not referenced
473 // Table 2:58 - Definition of TPMI_RH_NV_INDEX Type (TypeTable)
475 TPMI_RH_NV_INDEX_Unmarshal(TPMI_RH_NV_INDEX *target, BYTE **buffer, INT32 *size);
477 #define TPMI_RH_NV_INDEX_Marshal(source, buffer, size) \
478 TPM_HANDLE_Marshal((TPM_HANDLE *)(source), buffer, size)
481 // Table 2:59 - Definition of TPMI_ALG_HASH Type (TypeTable)
483 TPMI_ALG_HASH_Unmarshal(TPMI_ALG_HASH *target, BYTE **buffer, INT32 *size, BOOL flag);
485 #define TPMI_ALG_HASH_Marshal(source, buffer, size) \
486 TPM_ALG_ID_Marshal((TPM_ALG_ID *)(source), buffer, size)
489 // Table 2:60 - Definition of TPMI_ALG_ASYM Type (TypeTable)
490 // TPMI_ALG_ASYM_Unmarshal not referenced
491 // TPMI_ALG_ASYM_Marshal not referenced
494 // Table 2:61 - Definition of TPMI_ALG_SYM Type (TypeTable)
496 TPMI_ALG_SYM_Unmarshal(TPMI_ALG_SYM *target, BYTE **buffer, INT32 *size, BOOL flag);
498 // TPMI_ALG_SYM_Marshal not referenced
501 // Table 2:62 - Definition of TPMI_ALG_SYM_OBJECT Type (TypeTable)
503 TPMI_ALG_SYM_OBJECT_Unmarshal(TPMI_ALG_SYM_OBJECT *target, BYTE **buffer, INT32 *size, BOOL flag);
505 #define TPMI_ALG_SYM_OBJECT_Marshal(source, buffer, size) \
506 TPM_ALG_ID_Marshal((TPM_ALG_ID *)(source), buffer, size)
509 // Table 2:63 - Definition of TPMI_ALG_SYM_MODE Type (TypeTable)
511 TPMI_ALG_SYM_MODE_Unmarshal(TPMI_ALG_SYM_MODE *target, BYTE **buffer, INT32 *size, BOOL flag);
513 #define TPMI_ALG_SYM_MODE_Marshal(source, buffer, size) \
514 TPM_ALG_ID_Marshal((TPM_ALG_ID *)(source), buffer, size)
517 // Table 2:64 - Definition of TPMI_ALG_KDF Type (TypeTable)
519 TPMI_ALG_KDF_Unmarshal(TPMI_ALG_KDF *target, BYTE **buffer, INT32 *size, BOOL flag);
521 #define TPMI_ALG_KDF_Marshal(source, buffer, size) \
522 TPM_ALG_ID_Marshal((TPM_ALG_ID *)(source), buffer, size)
525 // Table 2:65 - Definition of TPMI_ALG_SIG_SCHEME Type (TypeTable)
527 TPMI_ALG_SIG_SCHEME_Unmarshal(TPMI_ALG_SIG_SCHEME *target, BYTE **buffer, INT32 *size, BOOL flag);
529 #define TPMI_ALG_SIG_SCHEME_Marshal(source, buffer, size) \
530 TPM_ALG_ID_Marshal((TPM_ALG_ID *)(source), buffer, size)
533 // Table 2:66 - Definition of TPMI_ECC_KEY_EXCHANGE Type (TypeTable)
536 TPMI_ECC_KEY_EXCHANGE_Unmarshal(TPMI_ECC_KEY_EXCHANGE *target, BYTE **buffer, INT32 *size, BOOL flag);
538 // TPMI_ECC_KEY_EXCHANGE_Marshal not referenced
539 #endif // TPM_ALG_ECC
542 // Table 2:67 - Definition of TPMI_ST_COMMAND_TAG Type (TypeTable)
544 TPMI_ST_COMMAND_TAG_Unmarshal(TPMI_ST_COMMAND_TAG *target, BYTE **buffer, INT32 *size);
546 // TPMI_ST_COMMAND_TAG_Marshal not referenced
548 TPMS_EMPTY_Unmarshal(TPMS_EMPTY *target, BYTE **buffer, INT32 *size);
550 TPMS_EMPTY_Marshal(TPMS_EMPTY *source, BYTE **buffer, INT32 *size);
553 // Table 2:69 - Definition of TPMS_ALGORITHM_DESCRIPTION Structure (StructureTable)
554 // TPMS_ALGORITHM_DESCRIPTION_Unmarshal not referenced
555 // TPMS_ALGORITHM_DESCRIPTION_Marshal not referenced
558 // Table 2:70 - Definition of TPMU_HA Union (UnionTable)
560 TPMU_HA_Unmarshal(TPMU_HA *target, BYTE **buffer, INT32 *size, UINT32 selector);
562 TPMU_HA_Marshal(TPMU_HA *source, BYTE **buffer, INT32 *size, UINT32 selector);
565 // Table 2:71 - Definition of TPMT_HA Structure (StructureTable)
567 TPMT_HA_Unmarshal(TPMT_HA *target, BYTE **buffer, INT32 *size, BOOL flag);
569 TPMT_HA_Marshal(TPMT_HA *source, BYTE **buffer, INT32 *size);
572 // Table 2:72 - Definition of TPM2B_DIGEST Structure (StructureTable)
574 TPM2B_DIGEST_Unmarshal(TPM2B_DIGEST *target, BYTE **buffer, INT32 *size);
576 TPM2B_DIGEST_Marshal(TPM2B_DIGEST *source, BYTE **buffer, INT32 *size);
579 // Table 2:73 - Definition of TPM2B_DATA Structure (StructureTable)
581 TPM2B_DATA_Unmarshal(TPM2B_DATA *target, BYTE **buffer, INT32 *size);
583 TPM2B_DATA_Marshal(TPM2B_DATA *source, BYTE **buffer, INT32 *size);
586 // Table 2:74 - Definition of Types for TPM2B_NONCE (TypesTable)
587 // TPM2B_DIGEST definition from table 2:74
588 #define TPM2B_NONCE_Unmarshal(target, buffer, size) \
589 TPM2B_DIGEST_Unmarshal((TPM2B_DIGEST *)(target), buffer, size)
590 #define TPM2B_NONCE_Marshal(source, buffer, size) \
591 TPM2B_DIGEST_Marshal((TPM2B_DIGEST *)(source), buffer, size)
594 // Table 2:75 - Definition of Types for TPM2B_AUTH (TypesTable)
595 // TPM2B_DIGEST definition from table 2:75
596 #define TPM2B_AUTH_Unmarshal(target, buffer, size) \
597 TPM2B_DIGEST_Unmarshal((TPM2B_DIGEST *)(target), buffer, size)
598 #define TPM2B_AUTH_Marshal(source, buffer, size) \
599 TPM2B_DIGEST_Marshal((TPM2B_DIGEST *)(source), buffer, size)
602 // Table 2:76 - Definition of Types for TPM2B_OPERAND (TypesTable)
603 // TPM2B_DIGEST definition from table 2:76
604 #define TPM2B_OPERAND_Unmarshal(target, buffer, size) \
605 TPM2B_DIGEST_Unmarshal((TPM2B_DIGEST *)(target), buffer, size)
606 // TPM2B_OPERAND_Marshal not referenced
609 // Table 2:77 - Definition of TPM2B_EVENT Structure (StructureTable)
611 TPM2B_EVENT_Unmarshal(TPM2B_EVENT *target, BYTE **buffer, INT32 *size);
613 // TPM2B_EVENT_Marshal not referenced
616 // Table 2:78 - Definition of TPM2B_MAX_BUFFER Structure (StructureTable)
618 TPM2B_MAX_BUFFER_Unmarshal(TPM2B_MAX_BUFFER *target, BYTE **buffer, INT32 *size);
620 TPM2B_MAX_BUFFER_Marshal(TPM2B_MAX_BUFFER *source, BYTE **buffer, INT32 *size);
623 // Table 2:79 - Definition of TPM2B_MAX_NV_BUFFER Structure (StructureTable)
625 TPM2B_MAX_NV_BUFFER_Unmarshal(TPM2B_MAX_NV_BUFFER *target, BYTE **buffer, INT32 *size);
627 TPM2B_MAX_NV_BUFFER_Marshal(TPM2B_MAX_NV_BUFFER *source, BYTE **buffer, INT32 *size);
630 // Table 2:80 - Definition of TPM2B_TIMEOUT Structure (StructureTable)
632 TPM2B_TIMEOUT_Unmarshal(TPM2B_TIMEOUT *target, BYTE **buffer, INT32 *size);
634 TPM2B_TIMEOUT_Marshal(TPM2B_TIMEOUT *source, BYTE **buffer, INT32 *size);
637 // Table 2:81 - Definition of TPM2B_IV Structure (StructureTable)
639 TPM2B_IV_Unmarshal(TPM2B_IV *target, BYTE **buffer, INT32 *size);
641 TPM2B_IV_Marshal(TPM2B_IV *source, BYTE **buffer, INT32 *size);
644 // Table 2:82 - Definition of TPMU_NAME Union (UnionTable)
647 // Table 2:83 - Definition of TPM2B_NAME Structure (StructureTable)
649 TPM2B_NAME_Unmarshal(TPM2B_NAME *target, BYTE **buffer, INT32 *size);
651 TPM2B_NAME_Marshal(TPM2B_NAME *source, BYTE **buffer, INT32 *size);
654 // Table 2:84 - Definition of TPMS_PCR_SELECT Structure (StructureTable)
655 // TPMS_PCR_SELECT_Unmarshal not referenced
656 // TPMS_PCR_SELECT_Marshal not referenced
659 // Table 2:85 - Definition of TPMS_PCR_SELECTION Structure (StructureTable)
661 TPMS_PCR_SELECTION_Unmarshal(TPMS_PCR_SELECTION *target, BYTE **buffer, INT32 *size);
663 TPMS_PCR_SELECTION_Marshal(TPMS_PCR_SELECTION *source, BYTE **buffer, INT32 *size);
666 // Table 2:88 - Definition of TPMT_TK_CREATION Structure (StructureTable)
668 TPMT_TK_CREATION_Unmarshal(TPMT_TK_CREATION *target, BYTE **buffer, INT32 *size);
670 TPMT_TK_CREATION_Marshal(TPMT_TK_CREATION *source, BYTE **buffer, INT32 *size);
673 // Table 2:89 - Definition of TPMT_TK_VERIFIED Structure (StructureTable)
675 TPMT_TK_VERIFIED_Unmarshal(TPMT_TK_VERIFIED *target, BYTE **buffer, INT32 *size);
677 TPMT_TK_VERIFIED_Marshal(TPMT_TK_VERIFIED *source, BYTE **buffer, INT32 *size);
680 // Table 2:90 - Definition of TPMT_TK_AUTH Structure (StructureTable)
682 TPMT_TK_AUTH_Unmarshal(TPMT_TK_AUTH *target, BYTE **buffer, INT32 *size);
684 TPMT_TK_AUTH_Marshal(TPMT_TK_AUTH *source, BYTE **buffer, INT32 *size);
687 // Table 2:91 - Definition of TPMT_TK_HASHCHECK Structure (StructureTable)
689 TPMT_TK_HASHCHECK_Unmarshal(TPMT_TK_HASHCHECK *target, BYTE **buffer, INT32 *size);
691 TPMT_TK_HASHCHECK_Marshal(TPMT_TK_HASHCHECK *source, BYTE **buffer, INT32 *size);
694 // Table 2:92 - Definition of TPMS_ALG_PROPERTY Structure (StructureTable)
695 // TPMS_ALG_PROPERTY_Unmarshal not referenced
697 TPMS_ALG_PROPERTY_Marshal(TPMS_ALG_PROPERTY *source, BYTE **buffer, INT32 *size);
700 // Table 2:93 - Definition of TPMS_TAGGED_PROPERTY Structure (StructureTable)
701 // TPMS_TAGGED_PROPERTY_Unmarshal not referenced
703 TPMS_TAGGED_PROPERTY_Marshal(TPMS_TAGGED_PROPERTY *source, BYTE **buffer, INT32 *size);
706 // Table 2:94 - Definition of TPMS_TAGGED_PCR_SELECT Structure (StructureTable)
707 // TPMS_TAGGED_PCR_SELECT_Unmarshal not referenced
709 TPMS_TAGGED_PCR_SELECT_Marshal(TPMS_TAGGED_PCR_SELECT *source, BYTE **buffer, INT32 *size);
712 // Table 2:95 - Definition of TPML_CC Structure (StructureTable)
714 TPML_CC_Unmarshal(TPML_CC *target, BYTE **buffer, INT32 *size);
716 TPML_CC_Marshal(TPML_CC *source, BYTE **buffer, INT32 *size);
719 // Table 2:96 - Definition of TPML_CCA Structure (StructureTable)
720 // TPML_CCA_Unmarshal not referenced
722 TPML_CCA_Marshal(TPML_CCA *source, BYTE **buffer, INT32 *size);
725 // Table 2:97 - Definition of TPML_ALG Structure (StructureTable)
727 TPML_ALG_Unmarshal(TPML_ALG *target, BYTE **buffer, INT32 *size);
729 TPML_ALG_Marshal(TPML_ALG *source, BYTE **buffer, INT32 *size);
732 // Table 2:98 - Definition of TPML_HANDLE Structure (StructureTable)
733 // TPML_HANDLE_Unmarshal not referenced
735 TPML_HANDLE_Marshal(TPML_HANDLE *source, BYTE **buffer, INT32 *size);
738 // Table 2:99 - Definition of TPML_DIGEST Structure (StructureTable)
740 TPML_DIGEST_Unmarshal(TPML_DIGEST *target, BYTE **buffer, INT32 *size);
742 TPML_DIGEST_Marshal(TPML_DIGEST *source, BYTE **buffer, INT32 *size);
745 // Table 2:100 - Definition of TPML_DIGEST_VALUES Structure (StructureTable)
747 TPML_DIGEST_VALUES_Unmarshal(TPML_DIGEST_VALUES *target, BYTE **buffer, INT32 *size);
749 TPML_DIGEST_VALUES_Marshal(TPML_DIGEST_VALUES *source, BYTE **buffer, INT32 *size);
752 // Table 2:101 - Definition of TPM2B_DIGEST_VALUES Structure (StructureTable)
753 // TPM2B_DIGEST_VALUES_Unmarshal not referenced
754 // TPM2B_DIGEST_VALUES_Marshal not referenced
757 // Table 2:102 - Definition of TPML_PCR_SELECTION Structure (StructureTable)
759 TPML_PCR_SELECTION_Unmarshal(TPML_PCR_SELECTION *target, BYTE **buffer, INT32 *size);
761 TPML_PCR_SELECTION_Marshal(TPML_PCR_SELECTION *source, BYTE **buffer, INT32 *size);
764 // Table 2:103 - Definition of TPML_ALG_PROPERTY Structure (StructureTable)
765 // TPML_ALG_PROPERTY_Unmarshal not referenced
767 TPML_ALG_PROPERTY_Marshal(TPML_ALG_PROPERTY *source, BYTE **buffer, INT32 *size);
770 // Table 2:104 - Definition of TPML_TAGGED_TPM_PROPERTY Structure (StructureTable)
771 // TPML_TAGGED_TPM_PROPERTY_Unmarshal not referenced
773 TPML_TAGGED_TPM_PROPERTY_Marshal(TPML_TAGGED_TPM_PROPERTY *source, BYTE **buffer, INT32 *size);
776 // Table 2:105 - Definition of TPML_TAGGED_PCR_PROPERTY Structure (StructureTable)
777 // TPML_TAGGED_PCR_PROPERTY_Unmarshal not referenced
779 TPML_TAGGED_PCR_PROPERTY_Marshal(TPML_TAGGED_PCR_PROPERTY *source, BYTE **buffer, INT32 *size);
782 // Table 2:106 - Definition of TPML_ECC_CURVE Structure (StructureTable)
784 // TPML_ECC_CURVE_Unmarshal not referenced
786 TPML_ECC_CURVE_Marshal(TPML_ECC_CURVE *source, BYTE **buffer, INT32 *size);
788 #endif // TPM_ALG_ECC
791 // Table 2:107 - Definition of TPMU_CAPABILITIES Union (UnionTable)
792 // TPMU_CAPABILITIES_Unmarshal not referenced
794 TPMU_CAPABILITIES_Marshal(TPMU_CAPABILITIES *source, BYTE **buffer, INT32 *size, UINT32 selector);
797 // Table 2:108 - Definition of TPMS_CAPABILITY_DATA Structure (StructureTable)
798 // TPMS_CAPABILITY_DATA_Unmarshal not referenced
800 TPMS_CAPABILITY_DATA_Marshal(TPMS_CAPABILITY_DATA *source, BYTE **buffer, INT32 *size);
803 // Table 2:109 - Definition of TPMS_CLOCK_INFO Structure (StructureTable)
804 // TPMS_CLOCK_INFO_Unmarshal not referenced
806 TPMS_CLOCK_INFO_Marshal(TPMS_CLOCK_INFO *source, BYTE **buffer, INT32 *size);
809 // Table 2:110 - Definition of TPMS_TIME_INFO Structure (StructureTable)
810 // TPMS_TIME_INFO_Unmarshal not referenced
812 TPMS_TIME_INFO_Marshal(TPMS_TIME_INFO *source, BYTE **buffer, INT32 *size);
815 // Table 2:111 - Definition of TPMS_TIME_ATTEST_INFO Structure (StructureTable)
816 // TPMS_TIME_ATTEST_INFO_Unmarshal not referenced
818 TPMS_TIME_ATTEST_INFO_Marshal(TPMS_TIME_ATTEST_INFO *source, BYTE **buffer, INT32 *size);
821 // Table 2:112 - Definition of TPMS_CERTIFY_INFO Structure (StructureTable)
822 // TPMS_CERTIFY_INFO_Unmarshal not referenced
824 TPMS_CERTIFY_INFO_Marshal(TPMS_CERTIFY_INFO *source, BYTE **buffer, INT32 *size);
827 // Table 2:113 - Definition of TPMS_QUOTE_INFO Structure (StructureTable)
828 // TPMS_QUOTE_INFO_Unmarshal not referenced
830 TPMS_QUOTE_INFO_Marshal(TPMS_QUOTE_INFO *source, BYTE **buffer, INT32 *size);
833 // Table 2:114 - Definition of TPMS_COMMAND_AUDIT_INFO Structure (StructureTable)
834 // TPMS_COMMAND_AUDIT_INFO_Unmarshal not referenced
836 TPMS_COMMAND_AUDIT_INFO_Marshal(TPMS_COMMAND_AUDIT_INFO *source, BYTE **buffer, INT32 *size);
839 // Table 2:115 - Definition of TPMS_SESSION_AUDIT_INFO Structure (StructureTable)
840 // TPMS_SESSION_AUDIT_INFO_Unmarshal not referenced
842 TPMS_SESSION_AUDIT_INFO_Marshal(TPMS_SESSION_AUDIT_INFO *source, BYTE **buffer, INT32 *size);
845 // Table 2:116 - Definition of TPMS_CREATION_INFO Structure (StructureTable)
846 // TPMS_CREATION_INFO_Unmarshal not referenced
848 TPMS_CREATION_INFO_Marshal(TPMS_CREATION_INFO *source, BYTE **buffer, INT32 *size);
851 // Table 2:117 - Definition of TPMS_NV_CERTIFY_INFO Structure (StructureTable)
852 // TPMS_NV_CERTIFY_INFO_Unmarshal not referenced
854 TPMS_NV_CERTIFY_INFO_Marshal(TPMS_NV_CERTIFY_INFO *source, BYTE **buffer, INT32 *size);
857 // Table 2:118 - Definition of TPMI_ST_ATTEST Type (TypeTable)
858 // TPMI_ST_ATTEST_Unmarshal not referenced
859 #define TPMI_ST_ATTEST_Marshal(source, buffer, size) \
860 TPM_ST_Marshal((TPM_ST *)(source), buffer, size)
863 // Table 2:119 - Definition of TPMU_ATTEST Union (UnionTable)
864 // TPMU_ATTEST_Unmarshal not referenced
866 TPMU_ATTEST_Marshal(TPMU_ATTEST *source, BYTE **buffer, INT32 *size, UINT32 selector);
869 // Table 2:120 - Definition of TPMS_ATTEST Structure (StructureTable)
870 // TPMS_ATTEST_Unmarshal not referenced
872 TPMS_ATTEST_Marshal(TPMS_ATTEST *source, BYTE **buffer, INT32 *size);
875 // Table 2:121 - Definition of TPM2B_ATTEST Structure (StructureTable)
876 // TPM2B_ATTEST_Unmarshal not referenced
878 TPM2B_ATTEST_Marshal(TPM2B_ATTEST *source, BYTE **buffer, INT32 *size);
881 // Table 2:122 - Definition of TPMS_AUTH_COMMAND Structure (StructureTable)
882 // TPMS_AUTH_COMMAND_Unmarshal not referenced
883 // TPMS_AUTH_COMMAND_Marshal not referenced
886 // Table 2:123 - Definition of TPMS_AUTH_RESPONSE Structure (StructureTable)
887 // TPMS_AUTH_RESPONSE_Unmarshal not referenced
888 // TPMS_AUTH_RESPONSE_Marshal not referenced
891 // Table 2:124 - Definition of TPMI_AES_KEY_BITS Type (TypeTable)
894 TPMI_AES_KEY_BITS_Unmarshal(TPMI_AES_KEY_BITS *target, BYTE **buffer, INT32 *size);
896 #define TPMI_AES_KEY_BITS_Marshal(source, buffer, size) \
897 TPM_KEY_BITS_Marshal((TPM_KEY_BITS *)(source), buffer, size)
898 #endif // TPM_ALG_AES
901 // Table 2:124 - Definition of TPMI_SM4_KEY_BITS Type (TypeTable)
904 TPMI_SM4_KEY_BITS_Unmarshal(TPMI_SM4_KEY_BITS *target, BYTE **buffer, INT32 *size);
906 #define TPMI_SM4_KEY_BITS_Marshal(source, buffer, size) \
907 TPM_KEY_BITS_Marshal((TPM_KEY_BITS *)(source), buffer, size)
908 #endif // TPM_ALG_SM4
911 // Table 2:124 - Definition of TPMI_CAMELLIA_KEY_BITS Type (TypeTable)
912 #ifdef TPM_ALG_CAMELLIA
914 TPMI_CAMELLIA_KEY_BITS_Unmarshal(TPMI_CAMELLIA_KEY_BITS *target, BYTE **buffer, INT32 *size);
916 #define TPMI_CAMELLIA_KEY_BITS_Marshal(source, buffer, size) \
917 TPM_KEY_BITS_Marshal((TPM_KEY_BITS *)(source), buffer, size)
918 #endif // TPM_ALG_CAMELLIA
921 // Table 2:125 - Definition of TPMU_SYM_KEY_BITS Union (UnionTable)
923 TPMU_SYM_KEY_BITS_Unmarshal(TPMU_SYM_KEY_BITS *target, BYTE **buffer, INT32 *size, UINT32 selector);
925 TPMU_SYM_KEY_BITS_Marshal(TPMU_SYM_KEY_BITS *source, BYTE **buffer, INT32 *size, UINT32 selector);
928 // Table 2:126 - Definition of TPMU_SYM_MODE Union (UnionTable)
930 TPMU_SYM_MODE_Unmarshal(TPMU_SYM_MODE *target, BYTE **buffer, INT32 *size, UINT32 selector);
932 TPMU_SYM_MODE_Marshal(TPMU_SYM_MODE *source, BYTE **buffer, INT32 *size, UINT32 selector);
935 // Table 2:128 - Definition of TPMT_SYM_DEF Structure (StructureTable)
937 TPMT_SYM_DEF_Unmarshal(TPMT_SYM_DEF *target, BYTE **buffer, INT32 *size, BOOL flag);
939 // TPMT_SYM_DEF_Marshal not referenced
942 // Table 2:129 - Definition of TPMT_SYM_DEF_OBJECT Structure (StructureTable)
944 TPMT_SYM_DEF_OBJECT_Unmarshal(TPMT_SYM_DEF_OBJECT *target, BYTE **buffer, INT32 *size, BOOL flag);
946 TPMT_SYM_DEF_OBJECT_Marshal(TPMT_SYM_DEF_OBJECT *source, BYTE **buffer, INT32 *size);
949 // Table 2:130 - Definition of TPM2B_SYM_KEY Structure (StructureTable)
951 TPM2B_SYM_KEY_Unmarshal(TPM2B_SYM_KEY *target, BYTE **buffer, INT32 *size);
953 TPM2B_SYM_KEY_Marshal(TPM2B_SYM_KEY *source, BYTE **buffer, INT32 *size);
956 // Table 2:131 - Definition of TPMS_SYMCIPHER_PARMS Structure (StructureTable)
957 #define TPMS_SYMCIPHER_PARMS_Unmarshal(target, buffer, size) \
958 TPMT_SYM_DEF_OBJECT_Unmarshal((TPMT_SYM_DEF_OBJECT *)&((target)->sym), buffer, size, 0)
959 #define TPMS_SYMCIPHER_PARMS_Marshal(source, buffer, size) \
960 TPMT_SYM_DEF_OBJECT_Marshal((TPMT_SYM_DEF_OBJECT *)&((source)->sym), buffer, size)
963 // Table 2:132 - Definition of TPM2B_SENSITIVE_DATA Structure (StructureTable)
965 TPM2B_SENSITIVE_DATA_Unmarshal(TPM2B_SENSITIVE_DATA *target, BYTE **buffer, INT32 *size);
967 TPM2B_SENSITIVE_DATA_Marshal(TPM2B_SENSITIVE_DATA *source, BYTE **buffer, INT32 *size);
970 // Table 2:133 - Definition of TPMS_SENSITIVE_CREATE Structure (StructureTable)
972 TPMS_SENSITIVE_CREATE_Unmarshal(TPMS_SENSITIVE_CREATE *target, BYTE **buffer, INT32 *size);
974 // TPMS_SENSITIVE_CREATE_Marshal not referenced
977 // Table 2:134 - Definition of TPM2B_SENSITIVE_CREATE Structure (StructureTable)
979 TPM2B_SENSITIVE_CREATE_Unmarshal(TPM2B_SENSITIVE_CREATE *target, BYTE **buffer, INT32 *size);
981 // TPM2B_SENSITIVE_CREATE_Marshal not referenced
984 // Table 2:135 - Definition of TPMS_SCHEME_HASH Structure (StructureTable)
985 #define TPMS_SCHEME_HASH_Unmarshal(target, buffer, size) \
986 TPMI_ALG_HASH_Unmarshal((TPMI_ALG_HASH *)&((target)->hashAlg), buffer, size, 0)
987 #define TPMS_SCHEME_HASH_Marshal(source, buffer, size) \
988 TPMI_ALG_HASH_Marshal((TPMI_ALG_HASH *)&((source)->hashAlg), buffer, size)
991 // Table 2:136 - Definition of TPMS_SCHEME_ECDAA Structure (StructureTable)
994 TPMS_SCHEME_ECDAA_Unmarshal(TPMS_SCHEME_ECDAA *target, BYTE **buffer, INT32 *size);
996 TPMS_SCHEME_ECDAA_Marshal(TPMS_SCHEME_ECDAA *source, BYTE **buffer, INT32 *size);
998 #endif // TPM_ALG_ECC
1001 // Table 2:137 - Definition of TPMI_ALG_KEYEDHASH_SCHEME Type (TypeTable)
1003 TPMI_ALG_KEYEDHASH_SCHEME_Unmarshal(TPMI_ALG_KEYEDHASH_SCHEME *target, BYTE **buffer, INT32 *size, BOOL flag);
1005 #define TPMI_ALG_KEYEDHASH_SCHEME_Marshal(source, buffer, size) \
1006 TPM_ALG_ID_Marshal((TPM_ALG_ID *)(source), buffer, size)
1009 // Table 2:138 - Definition of Types for HMAC_SIG_SCHEME (TypesTable)
1010 // TPMS_SCHEME_HASH definition from table 2:138
1011 #define TPMS_SCHEME_HMAC_Unmarshal(target, buffer, size) \
1012 TPMS_SCHEME_HASH_Unmarshal((TPMS_SCHEME_HASH *)(target), buffer, size)
1013 #define TPMS_SCHEME_HMAC_Marshal(source, buffer, size) \
1014 TPMS_SCHEME_HASH_Marshal((TPMS_SCHEME_HASH *)(source), buffer, size)
1017 // Table 2:139 - Definition of TPMS_SCHEME_XOR Structure (StructureTable)
1019 TPMS_SCHEME_XOR_Unmarshal(TPMS_SCHEME_XOR *target, BYTE **buffer, INT32 *size, BOOL flag);
1021 TPMS_SCHEME_XOR_Marshal(TPMS_SCHEME_XOR *source, BYTE **buffer, INT32 *size);
1024 // Table 2:140 - Definition of TPMU_SCHEME_KEYEDHASH Union (UnionTable)
1026 TPMU_SCHEME_KEYEDHASH_Unmarshal(TPMU_SCHEME_KEYEDHASH *target, BYTE **buffer, INT32 *size, UINT32 selector);
1028 TPMU_SCHEME_KEYEDHASH_Marshal(TPMU_SCHEME_KEYEDHASH *source, BYTE **buffer, INT32 *size, UINT32 selector);
1031 // Table 2:141 - Definition of TPMT_KEYEDHASH_SCHEME Structure (StructureTable)
1033 TPMT_KEYEDHASH_SCHEME_Unmarshal(TPMT_KEYEDHASH_SCHEME *target, BYTE **buffer, INT32 *size, BOOL flag);
1035 TPMT_KEYEDHASH_SCHEME_Marshal(TPMT_KEYEDHASH_SCHEME *source, BYTE **buffer, INT32 *size);
1038 // Table 2:142 - Definition of Types for RSA Signature Schemes (TypesTable)
1040 // TPMS_SCHEME_HASH definition from table 2:142
1042 #define TPMS_SIG_SCHEME_RSASSA_Unmarshal(target, buffer, size) \
1043 TPMS_SCHEME_HASH_Unmarshal((TPMS_SCHEME_HASH *)(target), buffer, size)
1044 #define TPMS_SIG_SCHEME_RSASSA_Marshal(source, buffer, size) \
1045 TPMS_SCHEME_HASH_Marshal((TPMS_SCHEME_HASH *)(source), buffer, size)
1046 #endif // TPM_ALG_RSA
1047 // TPMS_SCHEME_HASH definition from table 2:142
1049 #define TPMS_SIG_SCHEME_RSAPSS_Unmarshal(target, buffer, size) \
1050 TPMS_SCHEME_HASH_Unmarshal((TPMS_SCHEME_HASH *)(target), buffer, size)
1051 #define TPMS_SIG_SCHEME_RSAPSS_Marshal(source, buffer, size) \
1052 TPMS_SCHEME_HASH_Marshal((TPMS_SCHEME_HASH *)(source), buffer, size)
1053 #endif // TPM_ALG_RSA
1054 #endif // TPM_ALG_RSA
1057 // Table 2:143 - Definition of Types for ECC Signature Schemes (TypesTable)
1059 // TPMS_SCHEME_HASH definition from table 2:143
1061 #define TPMS_SIG_SCHEME_ECDSA_Unmarshal(target, buffer, size) \
1062 TPMS_SCHEME_HASH_Unmarshal((TPMS_SCHEME_HASH *)(target), buffer, size)
1063 #define TPMS_SIG_SCHEME_ECDSA_Marshal(source, buffer, size) \
1064 TPMS_SCHEME_HASH_Marshal((TPMS_SCHEME_HASH *)(source), buffer, size)
1065 #endif // TPM_ALG_ECC
1066 // TPMS_SCHEME_HASH definition from table 2:143
1068 #define TPMS_SIG_SCHEME_SM2_Unmarshal(target, buffer, size) \
1069 TPMS_SCHEME_HASH_Unmarshal((TPMS_SCHEME_HASH *)(target), buffer, size)
1070 #define TPMS_SIG_SCHEME_SM2_Marshal(source, buffer, size) \
1071 TPMS_SCHEME_HASH_Marshal((TPMS_SCHEME_HASH *)(source), buffer, size)
1072 #endif // TPM_ALG_ECC
1073 // TPMS_SCHEME_HASH definition from table 2:143
1075 #define TPMS_SIG_SCHEME_ECSCHNORR_Unmarshal(target, buffer, size) \
1076 TPMS_SCHEME_HASH_Unmarshal((TPMS_SCHEME_HASH *)(target), buffer, size)
1077 #define TPMS_SIG_SCHEME_ECSCHNORR_Marshal(source, buffer, size) \
1078 TPMS_SCHEME_HASH_Marshal((TPMS_SCHEME_HASH *)(source), buffer, size)
1079 #endif // TPM_ALG_ECC
1080 // TPMS_SCHEME_ECDAA definition from table 2:143
1082 #define TPMS_SIG_SCHEME_ECDAA_Unmarshal(target, buffer, size) \
1083 TPMS_SCHEME_ECDAA_Unmarshal((TPMS_SCHEME_ECDAA *)(target), buffer, size)
1084 #define TPMS_SIG_SCHEME_ECDAA_Marshal(source, buffer, size) \
1085 TPMS_SCHEME_ECDAA_Marshal((TPMS_SCHEME_ECDAA *)(source), buffer, size)
1086 #endif // TPM_ALG_ECC
1087 #endif // TPM_ALG_ECC
1090 // Table 2:144 - Definition of TPMU_SIG_SCHEME Union (UnionTable)
1092 TPMU_SIG_SCHEME_Unmarshal(TPMU_SIG_SCHEME *target, BYTE **buffer, INT32 *size, UINT32 selector);
1094 // TPMU_SIG_SCHEME_Marshal not referenced
1097 // Table 2:145 - Definition of TPMT_SIG_SCHEME Structure (StructureTable)
1099 TPMT_SIG_SCHEME_Unmarshal(TPMT_SIG_SCHEME *target, BYTE **buffer, INT32 *size, BOOL flag);
1101 // TPMT_SIG_SCHEME_Marshal not referenced
1104 // Table 2:146 - Definition of Types for Encryption Schemes (TypesTable)
1106 // TPMS_SCHEME_HASH definition from table 2:146
1108 #define TPMS_ENC_SCHEME_OAEP_Unmarshal(target, buffer, size) \
1109 TPMS_SCHEME_HASH_Unmarshal((TPMS_SCHEME_HASH *)(target), buffer, size)
1110 #define TPMS_ENC_SCHEME_OAEP_Marshal(source, buffer, size) \
1111 TPMS_SCHEME_HASH_Marshal((TPMS_SCHEME_HASH *)(source), buffer, size)
1112 #endif // TPM_ALG_RSA
1113 // TPMS_EMPTY definition from table 2:146
1115 #define TPMS_ENC_SCHEME_RSAES_Unmarshal(target, buffer, size) \
1116 TPMS_EMPTY_Unmarshal((TPMS_EMPTY *)(target), buffer, size)
1117 #define TPMS_ENC_SCHEME_RSAES_Marshal(source, buffer, size) \
1118 TPMS_EMPTY_Marshal((TPMS_EMPTY *)(source), buffer, size)
1119 #endif // TPM_ALG_RSA
1120 #endif // TPM_ALG_RSA
1123 // Table 2:147 - Definition of Types for ECC Key Exchange (TypesTable)
1125 // TPMS_SCHEME_HASH definition from table 2:147
1127 #define TPMS_KEY_SCHEME_ECDH_Unmarshal(target, buffer, size) \
1128 TPMS_SCHEME_HASH_Unmarshal((TPMS_SCHEME_HASH *)(target), buffer, size)
1129 #define TPMS_KEY_SCHEME_ECDH_Marshal(source, buffer, size) \
1130 TPMS_SCHEME_HASH_Marshal((TPMS_SCHEME_HASH *)(source), buffer, size)
1131 #endif // TPM_ALG_ECC
1132 // TPMS_SCHEME_HASH definition from table 2:147
1134 #define TPMS_KEY_SCHEME_ECMQV_Unmarshal(target, buffer, size) \
1135 TPMS_SCHEME_HASH_Unmarshal((TPMS_SCHEME_HASH *)(target), buffer, size)
1136 #define TPMS_KEY_SCHEME_ECMQV_Marshal(source, buffer, size) \
1137 TPMS_SCHEME_HASH_Marshal((TPMS_SCHEME_HASH *)(source), buffer, size)
1138 #endif // TPM_ALG_ECC
1139 #endif // TPM_ALG_ECC
1142 // Table 2:148 - Definition of Types for KDF Schemes (TypesTable)
1143 // TPMS_SCHEME_HASH definition from table 2:148
1144 #define TPMS_SCHEME_MGF1_Unmarshal(target, buffer, size) \
1145 TPMS_SCHEME_HASH_Unmarshal((TPMS_SCHEME_HASH *)(target), buffer, size)
1146 #define TPMS_SCHEME_MGF1_Marshal(source, buffer, size) \
1147 TPMS_SCHEME_HASH_Marshal((TPMS_SCHEME_HASH *)(source), buffer, size)
1148 // TPMS_SCHEME_HASH definition from table 2:148
1149 #define TPMS_SCHEME_KDF1_SP800_56A_Unmarshal(target, buffer, size) \
1150 TPMS_SCHEME_HASH_Unmarshal((TPMS_SCHEME_HASH *)(target), buffer, size)
1151 #define TPMS_SCHEME_KDF1_SP800_56A_Marshal(source, buffer, size) \
1152 TPMS_SCHEME_HASH_Marshal((TPMS_SCHEME_HASH *)(source), buffer, size)
1153 // TPMS_SCHEME_HASH definition from table 2:148
1154 #define TPMS_SCHEME_KDF2_Unmarshal(target, buffer, size) \
1155 TPMS_SCHEME_HASH_Unmarshal((TPMS_SCHEME_HASH *)(target), buffer, size)
1156 #define TPMS_SCHEME_KDF2_Marshal(source, buffer, size) \
1157 TPMS_SCHEME_HASH_Marshal((TPMS_SCHEME_HASH *)(source), buffer, size)
1158 // TPMS_SCHEME_HASH definition from table 2:148
1159 #define TPMS_SCHEME_KDF1_SP800_108_Unmarshal(target, buffer, size) \
1160 TPMS_SCHEME_HASH_Unmarshal((TPMS_SCHEME_HASH *)(target), buffer, size)
1161 #define TPMS_SCHEME_KDF1_SP800_108_Marshal(source, buffer, size) \
1162 TPMS_SCHEME_HASH_Marshal((TPMS_SCHEME_HASH *)(source), buffer, size)
1165 // Table 2:149 - Definition of TPMU_KDF_SCHEME Union (UnionTable)
1167 TPMU_KDF_SCHEME_Unmarshal(TPMU_KDF_SCHEME *target, BYTE **buffer, INT32 *size, UINT32 selector);
1169 TPMU_KDF_SCHEME_Marshal(TPMU_KDF_SCHEME *source, BYTE **buffer, INT32 *size, UINT32 selector);
1172 // Table 2:150 - Definition of TPMT_KDF_SCHEME Structure (StructureTable)
1174 TPMT_KDF_SCHEME_Unmarshal(TPMT_KDF_SCHEME *target, BYTE **buffer, INT32 *size, BOOL flag);
1176 TPMT_KDF_SCHEME_Marshal(TPMT_KDF_SCHEME *source, BYTE **buffer, INT32 *size);
1179 // Table 2:151 - Definition of TPMI_ALG_ASYM_SCHEME Type (TypeTable)
1180 // TPMI_ALG_ASYM_SCHEME_Unmarshal not referenced
1181 // TPMI_ALG_ASYM_SCHEME_Marshal not referenced
1184 // Table 2:152 - Definition of TPMU_ASYM_SCHEME Union (UnionTable)
1186 TPMU_ASYM_SCHEME_Unmarshal(TPMU_ASYM_SCHEME *target, BYTE **buffer, INT32 *size, UINT32 selector);
1188 TPMU_ASYM_SCHEME_Marshal(TPMU_ASYM_SCHEME *source, BYTE **buffer, INT32 *size, UINT32 selector);
1191 // Table 2:153 - Definition of TPMT_ASYM_SCHEME Structure (StructureTable)
1192 // TPMT_ASYM_SCHEME_Unmarshal not referenced
1193 // TPMT_ASYM_SCHEME_Marshal not referenced
1196 // Table 2:154 - Definition of TPMI_ALG_RSA_SCHEME Type (TypeTable)
1199 TPMI_ALG_RSA_SCHEME_Unmarshal(TPMI_ALG_RSA_SCHEME *target, BYTE **buffer, INT32 *size, BOOL flag);
1201 #define TPMI_ALG_RSA_SCHEME_Marshal(source, buffer, size) \
1202 TPM_ALG_ID_Marshal((TPM_ALG_ID *)(source), buffer, size)
1203 #endif // TPM_ALG_RSA
1206 // Table 2:155 - Definition of TPMT_RSA_SCHEME Structure (StructureTable)
1209 TPMT_RSA_SCHEME_Unmarshal(TPMT_RSA_SCHEME *target, BYTE **buffer, INT32 *size, BOOL flag);
1211 TPMT_RSA_SCHEME_Marshal(TPMT_RSA_SCHEME *source, BYTE **buffer, INT32 *size);
1213 #endif // TPM_ALG_RSA
1216 // Table 2:156 - Definition of TPMI_ALG_RSA_DECRYPT Type (TypeTable)
1219 TPMI_ALG_RSA_DECRYPT_Unmarshal(TPMI_ALG_RSA_DECRYPT *target, BYTE **buffer, INT32 *size, BOOL flag);
1221 // TPMI_ALG_RSA_DECRYPT_Marshal not referenced
1222 #endif // TPM_ALG_RSA
1225 // Table 2:157 - Definition of TPMT_RSA_DECRYPT Structure (StructureTable)
1228 TPMT_RSA_DECRYPT_Unmarshal(TPMT_RSA_DECRYPT *target, BYTE **buffer, INT32 *size, BOOL flag);
1230 // TPMT_RSA_DECRYPT_Marshal not referenced
1231 #endif // TPM_ALG_RSA
1234 // Table 2:158 - Definition of TPM2B_PUBLIC_KEY_RSA Structure (StructureTable)
1237 TPM2B_PUBLIC_KEY_RSA_Unmarshal(TPM2B_PUBLIC_KEY_RSA *target, BYTE **buffer, INT32 *size);
1239 TPM2B_PUBLIC_KEY_RSA_Marshal(TPM2B_PUBLIC_KEY_RSA *source, BYTE **buffer, INT32 *size);
1241 #endif // TPM_ALG_RSA
1244 // Table 2:159 - Definition of TPMI_RSA_KEY_BITS Type (TypeTable)
1247 TPMI_RSA_KEY_BITS_Unmarshal(TPMI_RSA_KEY_BITS *target, BYTE **buffer, INT32 *size);
1249 #define TPMI_RSA_KEY_BITS_Marshal(source, buffer, size) \
1250 TPM_KEY_BITS_Marshal((TPM_KEY_BITS *)(source), buffer, size)
1251 #endif // TPM_ALG_RSA
1254 // Table 2:160 - Definition of TPM2B_PRIVATE_KEY_RSA Structure (StructureTable)
1257 TPM2B_PRIVATE_KEY_RSA_Unmarshal(TPM2B_PRIVATE_KEY_RSA *target, BYTE **buffer, INT32 *size);
1259 TPM2B_PRIVATE_KEY_RSA_Marshal(TPM2B_PRIVATE_KEY_RSA *source, BYTE **buffer, INT32 *size);
1261 #endif // TPM_ALG_RSA
1264 // Table 2:161 - Definition of TPM2B_ECC_PARAMETER Structure (StructureTable)
1267 TPM2B_ECC_PARAMETER_Unmarshal(TPM2B_ECC_PARAMETER *target, BYTE **buffer, INT32 *size);
1269 TPM2B_ECC_PARAMETER_Marshal(TPM2B_ECC_PARAMETER *source, BYTE **buffer, INT32 *size);
1271 #endif // TPM_ALG_ECC
1274 // Table 2:162 - Definition of TPMS_ECC_POINT Structure (StructureTable)
1277 TPMS_ECC_POINT_Unmarshal(TPMS_ECC_POINT *target, BYTE **buffer, INT32 *size);
1279 TPMS_ECC_POINT_Marshal(TPMS_ECC_POINT *source, BYTE **buffer, INT32 *size);
1281 #endif // TPM_ALG_ECC
1284 // Table 2:163 - Definition of TPM2B_ECC_POINT Structure (StructureTable)
1287 TPM2B_ECC_POINT_Unmarshal(TPM2B_ECC_POINT *target, BYTE **buffer, INT32 *size);
1289 TPM2B_ECC_POINT_Marshal(TPM2B_ECC_POINT *source, BYTE **buffer, INT32 *size);
1291 #endif // TPM_ALG_ECC
1294 // Table 2:164 - Definition of TPMI_ALG_ECC_SCHEME Type (TypeTable)
1297 TPMI_ALG_ECC_SCHEME_Unmarshal(TPMI_ALG_ECC_SCHEME *target, BYTE **buffer, INT32 *size, BOOL flag);
1299 #define TPMI_ALG_ECC_SCHEME_Marshal(source, buffer, size) \
1300 TPM_ALG_ID_Marshal((TPM_ALG_ID *)(source), buffer, size)
1301 #endif // TPM_ALG_ECC
1304 // Table 2:165 - Definition of TPMI_ECC_CURVE Type (TypeTable)
1307 TPMI_ECC_CURVE_Unmarshal(TPMI_ECC_CURVE *target, BYTE **buffer, INT32 *size);
1309 #define TPMI_ECC_CURVE_Marshal(source, buffer, size) \
1310 TPM_ECC_CURVE_Marshal((TPM_ECC_CURVE *)(source), buffer, size)
1311 #endif // TPM_ALG_ECC
1314 // Table 2:166 - Definition of TPMT_ECC_SCHEME Structure (StructureTable)
1317 TPMT_ECC_SCHEME_Unmarshal(TPMT_ECC_SCHEME *target, BYTE **buffer, INT32 *size, BOOL flag);
1319 TPMT_ECC_SCHEME_Marshal(TPMT_ECC_SCHEME *source, BYTE **buffer, INT32 *size);
1321 #endif // TPM_ALG_ECC
1324 // Table 2:167 - Definition of TPMS_ALGORITHM_DETAIL_ECC Structure (StructureTable)
1326 // TPMS_ALGORITHM_DETAIL_ECC_Unmarshal not referenced
1328 TPMS_ALGORITHM_DETAIL_ECC_Marshal(TPMS_ALGORITHM_DETAIL_ECC *source, BYTE **buffer, INT32 *size);
1330 #endif // TPM_ALG_ECC
1333 // Table 2:168 - Definition of TPMS_SIGNATURE_RSA Structure (StructureTable)
1336 TPMS_SIGNATURE_RSA_Unmarshal(TPMS_SIGNATURE_RSA *target, BYTE **buffer, INT32 *size);
1338 TPMS_SIGNATURE_RSA_Marshal(TPMS_SIGNATURE_RSA *source, BYTE **buffer, INT32 *size);
1340 #endif // TPM_ALG_RSA
1343 // Table 2:169 - Definition of Types for Signature (TypesTable)
1345 // TPMS_SIGNATURE_RSA definition from table 2:169
1347 #define TPMS_SIGNATURE_RSASSA_Unmarshal(target, buffer, size) \
1348 TPMS_SIGNATURE_RSA_Unmarshal((TPMS_SIGNATURE_RSA *)(target), buffer, size)
1349 #define TPMS_SIGNATURE_RSASSA_Marshal(source, buffer, size) \
1350 TPMS_SIGNATURE_RSA_Marshal((TPMS_SIGNATURE_RSA *)(source), buffer, size)
1351 #endif // TPM_ALG_RSA
1352 // TPMS_SIGNATURE_RSA definition from table 2:169
1354 #define TPMS_SIGNATURE_RSAPSS_Unmarshal(target, buffer, size) \
1355 TPMS_SIGNATURE_RSA_Unmarshal((TPMS_SIGNATURE_RSA *)(target), buffer, size)
1356 #define TPMS_SIGNATURE_RSAPSS_Marshal(source, buffer, size) \
1357 TPMS_SIGNATURE_RSA_Marshal((TPMS_SIGNATURE_RSA *)(source), buffer, size)
1358 #endif // TPM_ALG_RSA
1359 #endif // TPM_ALG_RSA
1362 // Table 2:170 - Definition of TPMS_SIGNATURE_ECC Structure (StructureTable)
1365 TPMS_SIGNATURE_ECC_Unmarshal(TPMS_SIGNATURE_ECC *target, BYTE **buffer, INT32 *size);
1367 TPMS_SIGNATURE_ECC_Marshal(TPMS_SIGNATURE_ECC *source, BYTE **buffer, INT32 *size);
1369 #endif // TPM_ALG_ECC
1372 // Table 2:171 - Definition of Types for TPMS_SIGNATUE_ECC (TypesTable)
1374 // TPMS_SIGNATURE_ECC definition from table 2:171
1376 #define TPMS_SIGNATURE_ECDSA_Unmarshal(target, buffer, size) \
1377 TPMS_SIGNATURE_ECC_Unmarshal((TPMS_SIGNATURE_ECC *)(target), buffer, size)
1378 #define TPMS_SIGNATURE_ECDSA_Marshal(source, buffer, size) \
1379 TPMS_SIGNATURE_ECC_Marshal((TPMS_SIGNATURE_ECC *)(source), buffer, size)
1380 #endif // TPM_ALG_ECC
1381 // TPMS_SIGNATURE_ECC definition from table 2:171
1383 #define TPMS_SIGNATURE_SM2_Unmarshal(target, buffer, size) \
1384 TPMS_SIGNATURE_ECC_Unmarshal((TPMS_SIGNATURE_ECC *)(target), buffer, size)
1385 #define TPMS_SIGNATURE_SM2_Marshal(source, buffer, size) \
1386 TPMS_SIGNATURE_ECC_Marshal((TPMS_SIGNATURE_ECC *)(source), buffer, size)
1387 #endif // TPM_ALG_ECC
1388 // TPMS_SIGNATURE_ECC definition from table 2:171
1390 #define TPMS_SIGNATURE_ECSCHNORR_Unmarshal(target, buffer, size) \
1391 TPMS_SIGNATURE_ECC_Unmarshal((TPMS_SIGNATURE_ECC *)(target), buffer, size)
1392 #define TPMS_SIGNATURE_ECSCHNORR_Marshal(source, buffer, size) \
1393 TPMS_SIGNATURE_ECC_Marshal((TPMS_SIGNATURE_ECC *)(source), buffer, size)
1394 #endif // TPM_ALG_ECC
1395 // TPMS_SIGNATURE_ECC definition from table 2:171
1397 #define TPMS_SIGNATURE_ECDAA_Unmarshal(target, buffer, size) \
1398 TPMS_SIGNATURE_ECC_Unmarshal((TPMS_SIGNATURE_ECC *)(target), buffer, size)
1399 #define TPMS_SIGNATURE_ECDAA_Marshal(source, buffer, size) \
1400 TPMS_SIGNATURE_ECC_Marshal((TPMS_SIGNATURE_ECC *)(source), buffer, size)
1401 #endif // TPM_ALG_ECC
1402 #endif // TPM_ALG_ECC
1405 // Table 2:172 - Definition of TPMU_SIGNATURE Union (UnionTable)
1407 TPMU_SIGNATURE_Unmarshal(TPMU_SIGNATURE *target, BYTE **buffer, INT32 *size, UINT32 selector);
1409 TPMU_SIGNATURE_Marshal(TPMU_SIGNATURE *source, BYTE **buffer, INT32 *size, UINT32 selector);
1412 // Table 2:173 - Definition of TPMT_SIGNATURE Structure (StructureTable)
1414 TPMT_SIGNATURE_Unmarshal(TPMT_SIGNATURE *target, BYTE **buffer, INT32 *size, BOOL flag);
1416 TPMT_SIGNATURE_Marshal(TPMT_SIGNATURE *source, BYTE **buffer, INT32 *size);
1419 // Table 2:174 - Definition of TPMU_ENCRYPTED_SECRET Union (UnionTable)
1420 // TPMU_ENCRYPTED_SECRET_Unmarshal not referenced
1421 // TPMU_ENCRYPTED_SECRET_Marshal not referenced
1424 // Table 2:175 - Definition of TPM2B_ENCRYPTED_SECRET Structure (StructureTable)
1426 TPM2B_ENCRYPTED_SECRET_Unmarshal(TPM2B_ENCRYPTED_SECRET *target, BYTE **buffer, INT32 *size);
1428 TPM2B_ENCRYPTED_SECRET_Marshal(TPM2B_ENCRYPTED_SECRET *source, BYTE **buffer, INT32 *size);
1431 // Table 2:176 - Definition of TPMI_ALG_PUBLIC Type (TypeTable)
1433 TPMI_ALG_PUBLIC_Unmarshal(TPMI_ALG_PUBLIC *target, BYTE **buffer, INT32 *size);
1435 #define TPMI_ALG_PUBLIC_Marshal(source, buffer, size) \
1436 TPM_ALG_ID_Marshal((TPM_ALG_ID *)(source), buffer, size)
1439 // Table 2:177 - Definition of TPMU_PUBLIC_ID Union (UnionTable)
1441 TPMU_PUBLIC_ID_Unmarshal(TPMU_PUBLIC_ID *target, BYTE **buffer, INT32 *size, UINT32 selector);
1443 TPMU_PUBLIC_ID_Marshal(TPMU_PUBLIC_ID *source, BYTE **buffer, INT32 *size, UINT32 selector);
1446 // Table 2:178 - Definition of TPMS_KEYEDHASH_PARMS Structure (StructureTable)
1447 #define TPMS_KEYEDHASH_PARMS_Unmarshal(target, buffer, size) \
1448 TPMT_KEYEDHASH_SCHEME_Unmarshal((TPMT_KEYEDHASH_SCHEME *)&((target)->scheme), buffer, size, 1)
1449 #define TPMS_KEYEDHASH_PARMS_Marshal(source, buffer, size) \
1450 TPMT_KEYEDHASH_SCHEME_Marshal((TPMT_KEYEDHASH_SCHEME *)&((source)->scheme), buffer, size)
1453 // Table 2:179 - Definition of TPMS_ASYM_PARMS Structure (StructureTable)
1454 // TPMS_ASYM_PARMS_Unmarshal not referenced
1455 // TPMS_ASYM_PARMS_Marshal not referenced
1458 // Table 2:180 - Definition of TPMS_RSA_PARMS Structure (StructureTable)
1461 TPMS_RSA_PARMS_Unmarshal(TPMS_RSA_PARMS *target, BYTE **buffer, INT32 *size);
1463 TPMS_RSA_PARMS_Marshal(TPMS_RSA_PARMS *source, BYTE **buffer, INT32 *size);
1465 #endif // TPM_ALG_RSA
1468 // Table 2:181 - Definition of TPMS_ECC_PARMS Structure (StructureTable)
1471 TPMS_ECC_PARMS_Unmarshal(TPMS_ECC_PARMS *target, BYTE **buffer, INT32 *size);
1473 TPMS_ECC_PARMS_Marshal(TPMS_ECC_PARMS *source, BYTE **buffer, INT32 *size);
1475 #endif // TPM_ALG_ECC
1478 // Table 2:182 - Definition of TPMU_PUBLIC_PARMS Union (UnionTable)
1480 TPMU_PUBLIC_PARMS_Unmarshal(TPMU_PUBLIC_PARMS *target, BYTE **buffer, INT32 *size, UINT32 selector);
1482 TPMU_PUBLIC_PARMS_Marshal(TPMU_PUBLIC_PARMS *source, BYTE **buffer, INT32 *size, UINT32 selector);
1485 // Table 2:183 - Definition of TPMT_PUBLIC_PARMS Structure (StructureTable)
1487 TPMT_PUBLIC_PARMS_Unmarshal(TPMT_PUBLIC_PARMS *target, BYTE **buffer, INT32 *size);
1489 // TPMT_PUBLIC_PARMS_Marshal not referenced
1492 // Table 2:184 - Definition of TPMT_PUBLIC Structure (StructureTable)
1494 TPMT_PUBLIC_Unmarshal(TPMT_PUBLIC *target, BYTE **buffer, INT32 *size, BOOL flag);
1496 TPMT_PUBLIC_Marshal(TPMT_PUBLIC *source, BYTE **buffer, INT32 *size);
1499 // Table 2:185 - Definition of TPM2B_PUBLIC Structure (StructureTable)
1501 TPM2B_PUBLIC_Unmarshal(TPM2B_PUBLIC *target, BYTE **buffer, INT32 *size, BOOL flag);
1503 TPM2B_PUBLIC_Marshal(TPM2B_PUBLIC *source, BYTE **buffer, INT32 *size);
1506 // Table 2:186 - Definition of TPM2B_PRIVATE_VENDOR_SPECIFIC Structure (StructureTable)
1507 // TPM2B_PRIVATE_VENDOR_SPECIFIC_Unmarshal not referenced
1508 // TPM2B_PRIVATE_VENDOR_SPECIFIC_Marshal not referenced
1511 // Table 2:187 - Definition of TPMU_SENSITIVE_COMPOSITE Union (UnionTable)
1513 TPMU_SENSITIVE_COMPOSITE_Unmarshal(TPMU_SENSITIVE_COMPOSITE *target, BYTE **buffer, INT32 *size, UINT32 selector);
1515 TPMU_SENSITIVE_COMPOSITE_Marshal(TPMU_SENSITIVE_COMPOSITE *source, BYTE **buffer, INT32 *size, UINT32 selector);
1518 // Table 2:188 - Definition of TPMT_SENSITIVE Structure (StructureTable)
1520 TPMT_SENSITIVE_Unmarshal(TPMT_SENSITIVE *target, BYTE **buffer, INT32 *size);
1522 TPMT_SENSITIVE_Marshal(TPMT_SENSITIVE *source, BYTE **buffer, INT32 *size);
1525 // Table 2:189 - Definition of TPM2B_SENSITIVE Structure (StructureTable)
1527 TPM2B_SENSITIVE_Unmarshal(TPM2B_SENSITIVE *target, BYTE **buffer, INT32 *size);
1529 // TPM2B_SENSITIVE_Marshal not referenced
1532 // Table 2:190 - Definition of _PRIVATE Structure (StructureTable)
1533 // _PRIVATE_Unmarshal not referenced
1534 // _PRIVATE_Marshal not referenced
1537 // Table 2:191 - Definition of TPM2B_PRIVATE Structure (StructureTable)
1539 TPM2B_PRIVATE_Unmarshal(TPM2B_PRIVATE *target, BYTE **buffer, INT32 *size);
1541 TPM2B_PRIVATE_Marshal(TPM2B_PRIVATE *source, BYTE **buffer, INT32 *size);
1544 // Table 2:192 - Definition of _ID_OBJECT Structure (StructureTable)
1545 // _ID_OBJECT_Unmarshal not referenced
1546 // _ID_OBJECT_Marshal not referenced
1549 // Table 2:193 - Definition of TPM2B_ID_OBJECT Structure (StructureTable)
1551 TPM2B_ID_OBJECT_Unmarshal(TPM2B_ID_OBJECT *target, BYTE **buffer, INT32 *size);
1553 TPM2B_ID_OBJECT_Marshal(TPM2B_ID_OBJECT *source, BYTE **buffer, INT32 *size);
1556 // Table 2:194 - Definition of TPM_NV_INDEX Bits (BitsTable)
1557 // TPM_NV_INDEX_Unmarshal not referenced
1558 // TPM_NV_INDEX_Marshal not referenced
1561 // Table 2:195 - Definition of TPMA_NV Bits (BitsTable)
1563 TPMA_NV_Unmarshal(TPMA_NV *target, BYTE **buffer, INT32 *size);
1565 #define TPMA_NV_Marshal(source, buffer, size) \
1566 UINT32_Marshal((UINT32 *)(source), buffer, size)
1569 // Table 2:196 - Definition of TPMS_NV_PUBLIC Structure (StructureTable)
1571 TPMS_NV_PUBLIC_Unmarshal(TPMS_NV_PUBLIC *target, BYTE **buffer, INT32 *size);
1573 TPMS_NV_PUBLIC_Marshal(TPMS_NV_PUBLIC *source, BYTE **buffer, INT32 *size);
1576 // Table 2:197 - Definition of TPM2B_NV_PUBLIC Structure (StructureTable)
1578 TPM2B_NV_PUBLIC_Unmarshal(TPM2B_NV_PUBLIC *target, BYTE **buffer, INT32 *size);
1580 TPM2B_NV_PUBLIC_Marshal(TPM2B_NV_PUBLIC *source, BYTE **buffer, INT32 *size);
1583 // Table 2:198 - Definition of TPM2B_CONTEXT_SENSITIVE Structure (StructureTable)
1584 // TPM2B_CONTEXT_SENSITIVE_Unmarshal not referenced
1585 // TPM2B_CONTEXT_SENSITIVE_Marshal not referenced
1588 // Table 2:199 - Definition of TPMS_CONTEXT_DATA Structure (StructureTable)
1589 // TPMS_CONTEXT_DATA_Unmarshal not referenced
1590 // TPMS_CONTEXT_DATA_Marshal not referenced
1593 // Table 2:200 - Definition of TPM2B_CONTEXT_DATA Structure (StructureTable)
1595 TPM2B_CONTEXT_DATA_Unmarshal(TPM2B_CONTEXT_DATA *target, BYTE **buffer, INT32 *size);
1597 TPM2B_CONTEXT_DATA_Marshal(TPM2B_CONTEXT_DATA *source, BYTE **buffer, INT32 *size);
1600 // Table 2:201 - Definition of TPMS_CONTEXT Structure (StructureTable)
1602 TPMS_CONTEXT_Unmarshal(TPMS_CONTEXT *target, BYTE **buffer, INT32 *size);
1604 TPMS_CONTEXT_Marshal(TPMS_CONTEXT *source, BYTE **buffer, INT32 *size);
1607 // Table 2:203 - Definition of TPMS_CREATION_DATA Structure (StructureTable)
1608 // TPMS_CREATION_DATA_Unmarshal not referenced
1610 TPMS_CREATION_DATA_Marshal(TPMS_CREATION_DATA *source, BYTE **buffer, INT32 *size);
1613 // Table 2:204 - Definition of TPM2B_CREATION_DATA Structure (StructureTable)
1614 // TPM2B_CREATION_DATA_Unmarshal not referenced
1616 TPM2B_CREATION_DATA_Marshal(TPM2B_CREATION_DATA *source, BYTE **buffer, INT32 *size);
1618 // Array Marshal/Unmarshal for TPMS_TAGGED_PROPERTY
1619 // TPMS_TAGGED_PROPERTY_Array_Unmarshal not referenced
1621 TPMS_TAGGED_PROPERTY_Array_Marshal(TPMS_TAGGED_PROPERTY *source, BYTE **buffer, INT32 *size, INT32 count);
1623 // Array Marshal/Unmarshal for TPMS_ALG_PROPERTY
1624 // TPMS_ALG_PROPERTY_Array_Unmarshal not referenced
1626 TPMS_ALG_PROPERTY_Array_Marshal(TPMS_ALG_PROPERTY *source, BYTE **buffer, INT32 *size, INT32 count);
1628 // Array Marshal/Unmarshal for TPMS_PCR_SELECTION
1630 TPMS_PCR_SELECTION_Array_Unmarshal(TPMS_PCR_SELECTION *target, BYTE **buffer, INT32 *size, INT32 count);
1632 TPMS_PCR_SELECTION_Array_Marshal(TPMS_PCR_SELECTION *source, BYTE **buffer, INT32 *size, INT32 count);
1634 // Array Marshal/Unmarshal for TPMT_HA
1636 TPMT_HA_Array_Unmarshal(TPMT_HA *target, BYTE **buffer, INT32 *size, BOOL flag, INT32 count);
1638 TPMT_HA_Array_Marshal(TPMT_HA *source, BYTE **buffer, INT32 *size, INT32 count);
1640 // Array Marshal/Unmarshal for BYTE
1642 BYTE_Array_Unmarshal(BYTE *target, BYTE **buffer, INT32 *size, INT32 count);
1644 BYTE_Array_Marshal(BYTE *source, BYTE **buffer, INT32 *size, INT32 count);
1646 // Array Marshal/Unmarshal for TPM_HANDLE
1647 // TPM_HANDLE_Array_Unmarshal not referenced
1649 TPM_HANDLE_Array_Marshal(TPM_HANDLE *source, BYTE **buffer, INT32 *size, INT32 count);
1651 // Array Marshal/Unmarshal for TPMA_CC
1652 // TPMA_CC_Array_Unmarshal not referenced
1654 TPMA_CC_Array_Marshal(TPMA_CC *source, BYTE **buffer, INT32 *size, INT32 count);
1656 // Array Marshal/Unmarshal for TPMS_TAGGED_PCR_SELECT
1657 // TPMS_TAGGED_PCR_SELECT_Array_Unmarshal not referenced
1659 TPMS_TAGGED_PCR_SELECT_Array_Marshal(TPMS_TAGGED_PCR_SELECT *source, BYTE **buffer, INT32 *size, INT32 count);
1661 // Array Marshal/Unmarshal for TPM_ECC_CURVE
1663 // TPM_ECC_CURVE_Array_Unmarshal not referenced
1665 TPM_ECC_CURVE_Array_Marshal(TPM_ECC_CURVE *source, BYTE **buffer, INT32 *size, INT32 count);
1667 #endif // TPM_ALG_ECC
1668 // Array Marshal/Unmarshal for TPM2B_DIGEST
1670 TPM2B_DIGEST_Array_Unmarshal(TPM2B_DIGEST *target, BYTE **buffer, INT32 *size, INT32 count);
1672 TPM2B_DIGEST_Array_Marshal(TPM2B_DIGEST *source, BYTE **buffer, INT32 *size, INT32 count);
1674 // Array Marshal/Unmarshal for TPM_CC
1676 TPM_CC_Array_Unmarshal(TPM_CC *target, BYTE **buffer, INT32 *size, INT32 count);
1678 TPM_CC_Array_Marshal(TPM_CC *source, BYTE **buffer, INT32 *size, INT32 count);
1680 // Array Marshal/Unmarshal for TPM_ALG_ID
1682 TPM_ALG_ID_Array_Unmarshal(TPM_ALG_ID *target, BYTE **buffer, INT32 *size, INT32 count);
1684 TPM_ALG_ID_Array_Marshal(TPM_ALG_ID *source, BYTE **buffer, INT32 *size, INT32 count);
1686 #endif // _MARSHAL_FP_H