xref: /aosp_15_r20/external/tpm2-tss/include/tss2/tss2_mu.h (revision 758e9fba6fc9adbf15340f70c73baee7b168b1c9)
1 /* SPDX-License-Identifier: BSD-2-Clause */
2 /***********************************************************************
3  * Copyright (c) 2015 - 2017, Intel Corporation
4  *
5  * All rights reserved.
6  ***********************************************************************/
7 
8 #ifndef MARSHAL_H
9 #define MARSHAL_H
10 
11 #include <stdlib.h>
12 #include "tss2_common.h"
13 #include "tss2_tpm2_types.h"
14 
15 #ifndef TSS2_API_VERSION_1_2_1_108
16 #error Version mismatch among TSS2 header files.
17 #endif  /* TSS2_API_VERSION_1_2_1_108 */
18 
19 #ifdef __cplusplus
20 extern "C" {
21 #endif
22 
23 TSS2_RC
24 Tss2_MU_BYTE_Marshal(
25     BYTE           src,
26     uint8_t         buffer[],
27     size_t          buffer_size,
28     size_t         *offset);
29 
30 TSS2_RC
31 Tss2_MU_BYTE_Unmarshal(
32     uint8_t const   buffer[],
33     size_t          buffer_size,
34     size_t         *offset,
35     BYTE           *dest);
36 
37 TSS2_RC
38 Tss2_MU_INT8_Marshal(
39     INT8            src,
40     uint8_t         buffer[],
41     size_t          buffer_size,
42     size_t         *offset);
43 
44 TSS2_RC
45 Tss2_MU_INT8_Unmarshal(
46     uint8_t const   buffer[],
47     size_t          buffer_size,
48     size_t         *offset,
49     INT8           *dest);
50 
51 TSS2_RC
52 Tss2_MU_INT16_Marshal(
53     INT16           src,
54     uint8_t         buffer[],
55     size_t          buffer_size,
56     size_t         *offset);
57 
58 TSS2_RC
59 Tss2_MU_INT16_Unmarshal(
60     uint8_t const   buffer[],
61     size_t          buffer_size,
62     size_t         *offset,
63     INT16          *dest);
64 
65 TSS2_RC
66 Tss2_MU_INT32_Marshal(
67     INT32           src,
68     uint8_t         buffer[],
69     size_t          buffer_size,
70     size_t         *offset);
71 
72 TSS2_RC
73 Tss2_MU_INT32_Unmarshal(
74     uint8_t const   buffer[],
75     size_t          buffer_size,
76     size_t         *offset,
77     INT32          *dest);
78 
79 TSS2_RC
80 Tss2_MU_INT64_Marshal(
81     INT64           src,
82     uint8_t         buffer[],
83     size_t          buffer_size,
84     size_t         *offset);
85 
86 TSS2_RC
87 Tss2_MU_INT64_Unmarshal(
88     uint8_t const   buffer[],
89     size_t          buffer_size,
90     size_t         *offset,
91     INT64          *dest);
92 
93 TSS2_RC
94 Tss2_MU_UINT8_Marshal(
95     UINT8           src,
96     uint8_t         buffer[],
97     size_t          buffer_size,
98     size_t         *offset);
99 
100 TSS2_RC
101 Tss2_MU_UINT8_Unmarshal(
102     uint8_t const   buffer[],
103     size_t          buffer_size,
104     size_t         *offset,
105     UINT8          *dest);
106 
107 TSS2_RC
108 Tss2_MU_UINT16_Marshal(
109     UINT16          src,
110     uint8_t         buffer[],
111     size_t          buffer_size,
112     size_t         *offset);
113 
114 TSS2_RC
115 Tss2_MU_UINT16_Unmarshal(
116     uint8_t const   buffer[],
117     size_t          buffer_size,
118     size_t         *offset,
119     UINT16         *dest);
120 
121 TSS2_RC
122 Tss2_MU_UINT32_Marshal(
123     UINT32          src,
124     uint8_t         buffer[],
125     size_t          buffer_size,
126     size_t         *offset);
127 
128 TSS2_RC
129 Tss2_MU_UINT32_Unmarshal(
130     uint8_t const   buffer[],
131     size_t          buffer_size,
132     size_t         *offset,
133     UINT32         *dest);
134 
135 TSS2_RC
136 Tss2_MU_UINT64_Marshal(
137     UINT64          src,
138     uint8_t         buffer[],
139     size_t          buffer_size,
140     size_t         *offset);
141 
142 TSS2_RC
143 Tss2_MU_UINT64_Unmarshal(
144     uint8_t const   buffer[],
145     size_t          buffer_size,
146     size_t         *offset,
147     UINT64         *dest);
148 
149 TSS2_RC
150 Tss2_MU_TPM2_CC_Marshal(
151     TPM2_CC          src,
152     uint8_t         buffer[],
153     size_t          buffer_size,
154     size_t         *offset);
155 
156 TSS2_RC
157 Tss2_MU_TPM2_CC_Unmarshal(
158     uint8_t const   buffer[],
159     size_t          buffer_size,
160     size_t         *offset,
161     TPM2_CC         *dest);
162 
163 TSS2_RC
164 Tss2_MU_TPM2_ST_Marshal(
165     TPM2_ST          src,
166     uint8_t         buffer[],
167     size_t          buffer_size,
168     size_t         *offset);
169 
170 TSS2_RC
171 Tss2_MU_TPM2_ST_Unmarshal(
172     uint8_t const   buffer[],
173     size_t          buffer_size,
174     size_t         *offset,
175     TPM2_ST         *dest);
176 
177 TSS2_RC
178 Tss2_MU_TPMA_ALGORITHM_Marshal(
179     TPMA_ALGORITHM  src,
180     uint8_t         buffer[],
181     size_t          buffer_size,
182     size_t          *offset);
183 
184 TSS2_RC
185 Tss2_MU_TPMA_ALGORITHM_Unmarshal(
186     uint8_t const   buffer[],
187     size_t          buffer_size,
188     size_t         *offset,
189     TPMA_ALGORITHM *dest);
190 
191 TSS2_RC
192 Tss2_MU_TPMA_CC_Marshal(
193     TPMA_CC         src,
194     uint8_t         buffer[],
195     size_t          buffer_size,
196     size_t         *offset);
197 
198 TSS2_RC
199 Tss2_MU_TPMA_CC_Unmarshal(
200     uint8_t const   buffer[],
201     size_t          buffer_size,
202     size_t         *offset,
203     TPMA_CC        *dest);
204 
205 TSS2_RC
206 Tss2_MU_TPMA_LOCALITY_Marshal(
207     TPMA_LOCALITY   src,
208     uint8_t         buffer[],
209     size_t          buffer_size,
210     size_t         *offset);
211 
212 TSS2_RC
213 Tss2_MU_TPMA_LOCALITY_Unmarshal(
214     uint8_t const   buffer[],
215     size_t          buffer_size,
216     size_t         *offset,
217     TPMA_LOCALITY  *dest);
218 TSS2_RC
219 
220 Tss2_MU_TPMA_NV_Marshal(
221     TPMA_NV         src,
222     uint8_t         buffer[],
223     size_t          buffer_size,
224     size_t         *offset);
225 
226 TSS2_RC
227 Tss2_MU_TPMA_NV_Unmarshal(
228     uint8_t const   buffer[],
229     size_t          buffer_size,
230     size_t         *offset,
231     TPMA_NV        *dest);
232 
233 TSS2_RC
234 Tss2_MU_TPMA_OBJECT_Marshal(
235     TPMA_OBJECT     src,
236     uint8_t         buffer[],
237     size_t          buffer_size,
238     size_t         *offset);
239 
240 TSS2_RC
241 Tss2_MU_TPMA_OBJECT_Unmarshal(
242     uint8_t const   buffer[],
243     size_t          buffer_size,
244     size_t         *offset,
245     TPMA_OBJECT    *dest);
246 
247 TSS2_RC
248 Tss2_MU_TPMA_PERMANENT_Marshal(
249     TPMA_PERMANENT  src,
250     uint8_t         buffer[],
251     size_t          buffer_size,
252     size_t         *offset);
253 
254 TSS2_RC
255 Tss2_MU_TPMA_PERMANENT_Unmarshal(
256     uint8_t const   buffer[],
257     size_t          buffer_size,
258     size_t         *offset,
259     TPMA_PERMANENT *dest);
260 
261 TSS2_RC
262 Tss2_MU_TPMA_SESSION_Marshal(
263     TPMA_SESSION    src,
264     uint8_t         buffer[],
265     size_t          buffer_size,
266     size_t         *offset);
267 
268 TSS2_RC
269 Tss2_MU_TPMA_SESSION_Unmarshal(
270     uint8_t const   buffer[],
271     size_t          buffer_size,
272     size_t         *offset,
273     TPMA_SESSION   *dest);
274 
275 TSS2_RC
276 Tss2_MU_TPMA_STARTUP_CLEAR_Marshal(
277     TPMA_STARTUP_CLEAR src,
278     uint8_t         buffer[],
279     size_t          buffer_size,
280     size_t         *offset);
281 
282 TSS2_RC
283 Tss2_MU_TPMA_STARTUP_CLEAR_Unmarshal(
284     uint8_t const   buffer[],
285     size_t          buffer_size,
286     size_t         *offset,
287     TPMA_STARTUP_CLEAR *dest);
288 
289 TSS2_RC
290 Tss2_MU_TPM2B_DIGEST_Marshal(
291     TPM2B_DIGEST const *src,
292     uint8_t         buffer[],
293     size_t          buffer_size,
294     size_t         *offset);
295 
296 TSS2_RC
297 Tss2_MU_TPM2B_DIGEST_Unmarshal(
298     uint8_t const   buffer[],
299     size_t          buffer_size,
300     size_t         *offset,
301     TPM2B_DIGEST   *dest);
302 
303 TSS2_RC
304 Tss2_MU_TPM2B_ATTEST_Marshal(
305     TPM2B_ATTEST const *src,
306     uint8_t         buffer[],
307     size_t          buffer_size,
308     size_t         *offset);
309 
310 TSS2_RC
311 Tss2_MU_TPM2B_ATTEST_Unmarshal(
312     uint8_t const   buffer[],
313     size_t          buffer_size,
314     size_t         *offset,
315     TPM2B_ATTEST   *dest);
316 
317 TSS2_RC
318 Tss2_MU_TPM2B_NAME_Marshal(
319     TPM2B_NAME const *src,
320     uint8_t         buffer[],
321     size_t          buffer_size,
322     size_t         *offset);
323 
324 TSS2_RC
325 Tss2_MU_TPM2B_NAME_Unmarshal(
326     uint8_t const   buffer[],
327     size_t          buffer_size,
328     size_t         *offset,
329     TPM2B_NAME     *dest);
330 
331 TSS2_RC
332 Tss2_MU_TPM2B_MAX_NV_BUFFER_Marshal(
333     TPM2B_MAX_NV_BUFFER const *src,
334     uint8_t         buffer[],
335     size_t          buffer_size,
336     size_t         *offset);
337 
338 TSS2_RC
339 Tss2_MU_TPM2B_MAX_NV_BUFFER_Unmarshal(
340     uint8_t const   buffer[],
341     size_t          buffer_size,
342     size_t         *offset,
343     TPM2B_MAX_NV_BUFFER *dest);
344 
345 TSS2_RC
346 Tss2_MU_TPM2B_SENSITIVE_DATA_Marshal(
347     TPM2B_SENSITIVE_DATA const *src,
348     uint8_t         buffer[],
349     size_t          buffer_size,
350     size_t         *offset);
351 
352 TSS2_RC
353 Tss2_MU_TPM2B_SENSITIVE_DATA_Unmarshal(
354     uint8_t const   buffer[],
355     size_t          buffer_size,
356     size_t         *offset,
357     TPM2B_SENSITIVE_DATA *dest);
358 
359 TSS2_RC
360 Tss2_MU_TPM2B_ECC_PARAMETER_Marshal(
361     TPM2B_ECC_PARAMETER const *src,
362     uint8_t         buffer[],
363     size_t          buffer_size,
364     size_t         *offset);
365 
366 TSS2_RC
367 Tss2_MU_TPM2B_ECC_PARAMETER_Unmarshal(
368     uint8_t const   buffer[],
369     size_t          buffer_size,
370     size_t         *offset,
371     TPM2B_ECC_PARAMETER *dest);
372 
373 TSS2_RC
374 Tss2_MU_TPM2B_PUBLIC_KEY_RSA_Marshal(
375     TPM2B_PUBLIC_KEY_RSA const *src,
376     uint8_t         buffer[],
377     size_t          buffer_size,
378     size_t         *offset);
379 
380 TSS2_RC
381 Tss2_MU_TPM2B_PUBLIC_KEY_RSA_Unmarshal(
382     uint8_t const   buffer[],
383     size_t          buffer_size,
384     size_t         *offset,
385     TPM2B_PUBLIC_KEY_RSA *dest);
386 
387 TSS2_RC
388 Tss2_MU_TPM2B_PRIVATE_KEY_RSA_Marshal(
389     TPM2B_PRIVATE_KEY_RSA const *src,
390     uint8_t         buffer[],
391     size_t          buffer_size,
392     size_t         *offset);
393 
394 TSS2_RC
395 Tss2_MU_TPM2B_PRIVATE_KEY_RSA_Unmarshal(
396     uint8_t const   buffer[],
397     size_t          buffer_size,
398     size_t         *offset,
399     TPM2B_PRIVATE_KEY_RSA *dest);
400 
401 TSS2_RC
402 Tss2_MU_TPM2B_PRIVATE_Marshal(
403     TPM2B_PRIVATE const *src,
404     uint8_t         buffer[],
405     size_t          buffer_size,
406     size_t         *offset);
407 
408 TSS2_RC
409 Tss2_MU_TPM2B_PRIVATE_Unmarshal(
410     uint8_t const   buffer[],
411     size_t          buffer_size,
412     size_t         *offset,
413     TPM2B_PRIVATE  *dest);
414 
415 TSS2_RC
416 Tss2_MU_TPM2B_CONTEXT_SENSITIVE_Marshal(
417     TPM2B_CONTEXT_SENSITIVE const *src,
418     uint8_t         buffer[],
419     size_t          buffer_size,
420     size_t         *offset);
421 
422 TSS2_RC
423 Tss2_MU_TPM2B_CONTEXT_SENSITIVE_Unmarshal(
424     uint8_t const   buffer[],
425     size_t          buffer_size,
426     size_t         *offset,
427     TPM2B_CONTEXT_SENSITIVE *dest);
428 
429 TSS2_RC
430 Tss2_MU_TPM2B_CONTEXT_DATA_Marshal(
431     TPM2B_CONTEXT_DATA const *src,
432     uint8_t         buffer[],
433     size_t          buffer_size,
434     size_t         *offset);
435 
436 TSS2_RC
437 Tss2_MU_TPM2B_CONTEXT_DATA_Unmarshal(
438     uint8_t const   buffer[],
439     size_t          buffer_size,
440     size_t         *offset,
441     TPM2B_CONTEXT_DATA *dest);
442 
443 TSS2_RC
444 Tss2_MU_TPM2B_DATA_Marshal(
445     TPM2B_DATA      const *src,
446     uint8_t         buffer[],
447     size_t          buffer_size,
448     size_t         *offset);
449 
450 TSS2_RC
451 Tss2_MU_TPM2B_DATA_Unmarshal(
452     uint8_t const   buffer[],
453     size_t          buffer_size,
454     size_t         *offset,
455     TPM2B_DATA     *dest);
456 
457 TSS2_RC
458 Tss2_MU_TPM2B_SYM_KEY_Marshal(
459     TPM2B_SYM_KEY   const *src,
460     uint8_t         buffer[],
461     size_t          buffer_size,
462     size_t         *offset);
463 
464 TSS2_RC
465 Tss2_MU_TPM2B_SYM_KEY_Unmarshal(
466     uint8_t const   buffer[],
467     size_t          buffer_size,
468     size_t         *offset,
469     TPM2B_SYM_KEY  *dest);
470 
471 TSS2_RC
472 Tss2_MU_TPM2B_ECC_POINT_Marshal(
473     TPM2B_ECC_POINT const *src,
474     uint8_t         buffer[],
475     size_t          buffer_size,
476     size_t         *offset);
477 
478 TSS2_RC
479 Tss2_MU_TPM2B_ECC_POINT_Unmarshal(
480     uint8_t const   buffer[],
481     size_t          buffer_size,
482     size_t          *offset,
483     TPM2B_ECC_POINT *dest);
484 
485 TSS2_RC
486 Tss2_MU_TPM2B_NV_PUBLIC_Marshal(
487     TPM2B_NV_PUBLIC const *src,
488     uint8_t         buffer[],
489     size_t          buffer_size,
490     size_t         *offset);
491 
492 TSS2_RC
493 Tss2_MU_TPM2B_NV_PUBLIC_Unmarshal(
494     uint8_t const   buffer[],
495     size_t          buffer_size,
496     size_t          *offset,
497     TPM2B_NV_PUBLIC *dest);
498 
499 TSS2_RC
500 Tss2_MU_TPM2B_SENSITIVE_Marshal(
501     TPM2B_SENSITIVE const *src,
502     uint8_t         buffer[],
503     size_t          buffer_size,
504     size_t         *offset);
505 
506 TSS2_RC
507 Tss2_MU_TPM2B_SENSITIVE_Unmarshal(
508     uint8_t const   buffer[],
509     size_t          buffer_size,
510     size_t          *offset,
511     TPM2B_SENSITIVE *dest);
512 
513 TSS2_RC
514 Tss2_MU_TPM2B_SENSITIVE_CREATE_Marshal(
515     TPM2B_SENSITIVE_CREATE const *src,
516     uint8_t         buffer[],
517     size_t          buffer_size,
518     size_t         *offset);
519 
520 TSS2_RC
521 Tss2_MU_TPM2B_SENSITIVE_CREATE_Unmarshal(
522     uint8_t const   buffer[],
523     size_t          buffer_size,
524     size_t          *offset,
525     TPM2B_SENSITIVE_CREATE *dest);
526 
527 TSS2_RC
528 Tss2_MU_TPM2B_CREATION_DATA_Marshal(
529     TPM2B_CREATION_DATA const *src,
530     uint8_t         buffer[],
531     size_t          buffer_size,
532     size_t         *offset);
533 
534 TSS2_RC
535 Tss2_MU_TPM2B_CREATION_DATA_Unmarshal(
536     uint8_t const   buffer[],
537     size_t          buffer_size,
538     size_t          *offset,
539     TPM2B_CREATION_DATA *dest);
540 
541 TSS2_RC
542 Tss2_MU_TPM2B_PUBLIC_Marshal(
543     TPM2B_PUBLIC    const *src,
544     uint8_t         buffer[],
545     size_t          buffer_size,
546     size_t         *offset);
547 
548 TSS2_RC
549 Tss2_MU_TPM2B_PUBLIC_Unmarshal(
550     uint8_t const   buffer[],
551     size_t          buffer_size,
552     size_t          *offset,
553     TPM2B_PUBLIC    *dest);
554 
555 TSS2_RC
556 Tss2_MU_TPM2B_ENCRYPTED_SECRET_Marshal(
557     TPM2B_ENCRYPTED_SECRET  const *src,
558     uint8_t         buffer[],
559     size_t          buffer_size,
560     size_t         *offset);
561 
562 TSS2_RC
563 Tss2_MU_TPM2B_ENCRYPTED_SECRET_Unmarshal(
564     uint8_t const  buffer[],
565     size_t          buffer_size,
566     size_t          *offset,
567     TPM2B_ENCRYPTED_SECRET *dest);
568 
569 TSS2_RC
570 Tss2_MU_TPM2B_ID_OBJECT_Marshal(
571     TPM2B_ID_OBJECT const *src,
572     uint8_t         buffer[],
573     size_t          buffer_size,
574     size_t         *offset);
575 
576 TSS2_RC
577 Tss2_MU_TPM2B_ID_OBJECT_Unmarshal(
578     uint8_t const  buffer[],
579     size_t          buffer_size,
580     size_t          *offset,
581     TPM2B_ID_OBJECT *dest);
582 
583 TSS2_RC
584 Tss2_MU_TPM2B_IV_Marshal(
585     TPM2B_IV const *src,
586     uint8_t         buffer[],
587     size_t          buffer_size,
588     size_t         *offset);
589 
590 TSS2_RC
591 Tss2_MU_TPM2B_IV_Unmarshal(
592     uint8_t const  buffer[],
593     size_t          buffer_size,
594     size_t          *offset,
595     TPM2B_IV        *dest);
596 
597 TSS2_RC
598 Tss2_MU_TPM2B_AUTH_Marshal(
599     TPM2B_AUTH const *src,
600     uint8_t         buffer[],
601     size_t          buffer_size,
602     size_t         *offset);
603 
604 TSS2_RC
605 Tss2_MU_TPM2B_AUTH_Unmarshal(
606     uint8_t const  buffer[],
607     size_t          buffer_size,
608     size_t          *offset,
609     TPM2B_AUTH      *dest);
610 
611 TSS2_RC
612 Tss2_MU_TPM2B_EVENT_Marshal(
613     TPM2B_EVENT const *src,
614     uint8_t         buffer[],
615     size_t          buffer_size,
616     size_t         *offset);
617 
618 TSS2_RC
619 Tss2_MU_TPM2B_EVENT_Unmarshal(
620     uint8_t const  buffer[],
621     size_t          buffer_size,
622     size_t          *offset,
623     TPM2B_EVENT     *dest);
624 
625 TSS2_RC
626 Tss2_MU_TPM2B_MAX_BUFFER_Marshal(
627     TPM2B_MAX_BUFFER const *src,
628     uint8_t         buffer[],
629     size_t          buffer_size,
630     size_t         *offset);
631 
632 TSS2_RC
633 Tss2_MU_TPM2B_MAX_BUFFER_Unmarshal(
634     uint8_t const   buffer[],
635     size_t          buffer_size,
636     size_t          *offset,
637     TPM2B_MAX_BUFFER *dest);
638 
639 TSS2_RC
640 Tss2_MU_TPM2B_NONCE_Marshal(
641     TPM2B_NONCE const *src,
642     uint8_t         buffer[],
643     size_t          buffer_size,
644     size_t         *offset);
645 
646 TSS2_RC
647 Tss2_MU_TPM2B_NONCE_Unmarshal(
648     uint8_t const   buffer[],
649     size_t          buffer_size,
650     size_t          *offset,
651     TPM2B_NONCE     *dest);
652 
653 TSS2_RC
654 Tss2_MU_TPM2B_OPERAND_Marshal(
655     TPM2B_OPERAND const *src,
656     uint8_t         buffer[],
657     size_t          buffer_size,
658     size_t         *offset);
659 
660 TSS2_RC
661 Tss2_MU_TPM2B_OPERAND_Unmarshal(
662     uint8_t const   buffer[],
663     size_t          buffer_size,
664     size_t          *offset,
665     TPM2B_OPERAND   *dest);
666 
667 TSS2_RC
668 Tss2_MU_TPM2B_TIMEOUT_Marshal(
669     TPM2B_TIMEOUT const *src,
670     uint8_t         buffer[],
671     size_t          buffer_size,
672     size_t         *offset);
673 
674 TSS2_RC
675 Tss2_MU_TPM2B_TIMEOUT_Unmarshal(
676     uint8_t const   buffer[],
677     size_t          buffer_size,
678     size_t          *offset,
679     TPM2B_TIMEOUT   *dest);
680 
681 TSS2_RC
682 Tss2_MU_TPM2B_TEMPLATE_Marshal(
683     TPM2B_TEMPLATE  const *src,
684     uint8_t         buffer[],
685     size_t          buffer_size,
686     size_t         *offset);
687 
688 TSS2_RC
689 Tss2_MU_TPM2B_TEMPLATE_Unmarshal(
690     uint8_t const   buffer[],
691     size_t          buffer_size,
692     size_t          *offset,
693     TPM2B_TEMPLATE  *dest);
694 
695 TSS2_RC
696 Tss2_MU_TPMS_CONTEXT_Marshal(
697     TPMS_CONTEXT    const *src,
698     uint8_t         buffer[],
699     size_t          buffer_size,
700     size_t         *offset);
701 
702 TSS2_RC
703 Tss2_MU_TPMS_CONTEXT_Unmarshal(
704     uint8_t const   buffer[],
705     size_t          buffer_size,
706     size_t         *offset,
707     TPMS_CONTEXT   *dest);
708 
709 TSS2_RC
710 Tss2_MU_TPMS_TIME_INFO_Marshal(
711     TPMS_TIME_INFO  const *src,
712     uint8_t         buffer[],
713     size_t          buffer_size,
714     size_t         *offset);
715 
716 TSS2_RC
717 Tss2_MU_TPMS_TIME_INFO_Unmarshal(
718     uint8_t const   buffer[],
719     size_t          buffer_size,
720     size_t         *offset,
721     TPMS_TIME_INFO *dest);
722 
723 TSS2_RC
724 Tss2_MU_TPMS_ECC_POINT_Marshal(
725     TPMS_ECC_POINT  const *src,
726     uint8_t         buffer[],
727     size_t          buffer_size,
728     size_t         *offset);
729 
730 TSS2_RC
731 Tss2_MU_TPMS_ECC_POINT_Unmarshal(
732     uint8_t const   buffer[],
733     size_t          buffer_size,
734     size_t         *offset,
735     TPMS_ECC_POINT *dest);
736 
737 TSS2_RC
738 Tss2_MU_TPMS_NV_PUBLIC_Marshal(
739     TPMS_NV_PUBLIC  const *src,
740     uint8_t         buffer[],
741     size_t          buffer_size,
742     size_t         *offset);
743 
744 TSS2_RC
745 Tss2_MU_TPMS_NV_PUBLIC_Unmarshal(
746     uint8_t const   buffer[],
747     size_t          buffer_size,
748     size_t         *offset,
749     TPMS_NV_PUBLIC *dest);
750 
751 TSS2_RC
752 Tss2_MU_TPMS_ALG_PROPERTY_Marshal(
753     TPMS_ALG_PROPERTY  const *src,
754     uint8_t         buffer[],
755     size_t          buffer_size,
756     size_t         *offset);
757 
758 TSS2_RC
759 Tss2_MU_TPMS_ALG_PROPERTY_Unmarshal(
760     uint8_t const   buffer[],
761     size_t          buffer_size,
762     size_t         *offset,
763     TPMS_ALG_PROPERTY *dest);
764 
765 TSS2_RC
766 Tss2_MU_TPMS_ALGORITHM_DESCRIPTION_Marshal(
767     TPMS_ALGORITHM_DESCRIPTION  const *src,
768     uint8_t         buffer[],
769     size_t          buffer_size,
770     size_t         *offset);
771 
772 TSS2_RC
773 Tss2_MU_TPMS_ALGORITHM_DESCRIPTION_Unmarshal(
774     uint8_t const   buffer[],
775     size_t          buffer_size,
776     size_t         *offset,
777     TPMS_ALGORITHM_DESCRIPTION *dest);
778 
779 TSS2_RC
780 Tss2_MU_TPMS_TAGGED_PROPERTY_Marshal(
781     TPMS_TAGGED_PROPERTY  const *src,
782     uint8_t         buffer[],
783     size_t          buffer_size,
784     size_t         *offset);
785 
786 TSS2_RC
787 Tss2_MU_TPMS_TAGGED_PROPERTY_Unmarshal(
788     uint8_t const   buffer[],
789     size_t          buffer_size,
790     size_t         *offset,
791     TPMS_TAGGED_PROPERTY *dest);
792 
793 TSS2_RC
794 Tss2_MU_TPMS_TAGGED_POLICY_Marshal(
795     TPMS_TAGGED_POLICY  const *src,
796     uint8_t         buffer[],
797     size_t          buffer_size,
798     size_t         *offset);
799 
800 TSS2_RC
801 Tss2_MU_TPMS_TAGGED_POLICY_Unmarshal(
802     uint8_t const   buffer[],
803     size_t          buffer_size,
804     size_t         *offset,
805     TPMS_TAGGED_POLICY *dest);
806 
807 TSS2_RC
808 Tss2_MU_TPMS_CLOCK_INFO_Marshal(
809     TPMS_CLOCK_INFO  const *src,
810     uint8_t         buffer[],
811     size_t          buffer_size,
812     size_t         *offset);
813 
814 TSS2_RC
815 Tss2_MU_TPMS_CLOCK_INFO_Unmarshal(
816     uint8_t const   buffer[],
817     size_t          buffer_size,
818     size_t         *offset,
819     TPMS_CLOCK_INFO *dest);
820 
821 TSS2_RC
822 Tss2_MU_TPMS_TIME_ATTEST_INFO_Marshal(
823     TPMS_TIME_ATTEST_INFO  const *src,
824     uint8_t         buffer[],
825     size_t          buffer_size,
826     size_t         *offset);
827 
828 TSS2_RC
829 Tss2_MU_TPMS_TIME_ATTEST_INFO_Unmarshal(
830     uint8_t const   buffer[],
831     size_t          buffer_size,
832     size_t         *offset,
833     TPMS_TIME_ATTEST_INFO *dest);
834 
835 TSS2_RC
836 Tss2_MU_TPMS_CERTIFY_INFO_Marshal(
837     TPMS_CERTIFY_INFO  const *src,
838     uint8_t         buffer[],
839     size_t          buffer_size,
840     size_t         *offset);
841 
842 TSS2_RC
843 Tss2_MU_TPMS_CERTIFY_INFO_Unmarshal(
844     uint8_t const   buffer[],
845     size_t          buffer_size,
846     size_t         *offset,
847     TPMS_CERTIFY_INFO *dest);
848 
849 TSS2_RC
850 Tss2_MU_TPMS_COMMAND_AUDIT_INFO_Marshal(
851     TPMS_COMMAND_AUDIT_INFO  const *src,
852     uint8_t         buffer[],
853     size_t          buffer_size,
854     size_t         *offset);
855 
856 TSS2_RC
857 Tss2_MU_TPMS_COMMAND_AUDIT_INFO_Unmarshal(
858     uint8_t const   buffer[],
859     size_t          buffer_size,
860     size_t         *offset,
861     TPMS_COMMAND_AUDIT_INFO *dest);
862 
863 TSS2_RC
864 Tss2_MU_TPMS_SESSION_AUDIT_INFO_Marshal(
865     TPMS_SESSION_AUDIT_INFO  const *src,
866     uint8_t         buffer[],
867     size_t          buffer_size,
868     size_t         *offset);
869 
870 TSS2_RC
871 Tss2_MU_TPMS_SESSION_AUDIT_INFO_Unmarshal(
872     uint8_t const   buffer[],
873     size_t          buffer_size,
874     size_t         *offset,
875     TPMS_SESSION_AUDIT_INFO *dest);
876 
877 TSS2_RC
878 Tss2_MU_TPMS_CREATION_INFO_Marshal(
879     TPMS_CREATION_INFO  const *src,
880     uint8_t         buffer[],
881     size_t          buffer_size,
882     size_t         *offset);
883 
884 TSS2_RC
885 Tss2_MU_TPMS_CREATION_INFO_Unmarshal(
886     uint8_t const   buffer[],
887     size_t          buffer_size,
888     size_t         *offset,
889     TPMS_CREATION_INFO *dest);
890 
891 TSS2_RC
892 Tss2_MU_TPMS_NV_CERTIFY_INFO_Marshal(
893     TPMS_NV_CERTIFY_INFO  const *src,
894     uint8_t         buffer[],
895     size_t          buffer_size,
896     size_t         *offset);
897 
898 TSS2_RC
899 Tss2_MU_TPMS_NV_CERTIFY_INFO_Unmarshal(
900     uint8_t const   buffer[],
901     size_t          buffer_size,
902     size_t         *offset,
903     TPMS_NV_CERTIFY_INFO *dest);
904 
905 TSS2_RC
906 Tss2_MU_TPMS_AUTH_COMMAND_Marshal(
907     TPMS_AUTH_COMMAND  const *src,
908     uint8_t         buffer[],
909     size_t          buffer_size,
910     size_t         *offset);
911 
912 TSS2_RC
913 Tss2_MU_TPMS_AUTH_COMMAND_Unmarshal(
914     uint8_t const   buffer[],
915     size_t          buffer_size,
916     size_t         *offset,
917     TPMS_AUTH_COMMAND *dest);
918 
919 TSS2_RC
920 Tss2_MU_TPMS_AUTH_RESPONSE_Marshal(
921     TPMS_AUTH_RESPONSE  const *src,
922     uint8_t         buffer[],
923     size_t          buffer_size,
924     size_t         *offset);
925 
926 TSS2_RC
927 Tss2_MU_TPMS_AUTH_RESPONSE_Unmarshal(
928     uint8_t const   buffer[],
929     size_t          buffer_size,
930     size_t         *offset,
931     TPMS_AUTH_RESPONSE *dest);
932 
933 TSS2_RC
934 Tss2_MU_TPMS_SENSITIVE_CREATE_Marshal(
935     TPMS_SENSITIVE_CREATE  const *src,
936     uint8_t         buffer[],
937     size_t          buffer_size,
938     size_t         *offset);
939 
940 TSS2_RC
941 Tss2_MU_TPMS_SENSITIVE_CREATE_Unmarshal(
942     uint8_t const   buffer[],
943     size_t          buffer_size,
944     size_t         *offset,
945     TPMS_SENSITIVE_CREATE *dest);
946 
947 TSS2_RC
948 Tss2_MU_TPMS_SCHEME_HASH_Marshal(
949     TPMS_SCHEME_HASH  const *src,
950     uint8_t         buffer[],
951     size_t          buffer_size,
952     size_t         *offset);
953 
954 TSS2_RC
955 Tss2_MU_TPMS_SCHEME_HASH_Unmarshal(
956     uint8_t const   buffer[],
957     size_t          buffer_size,
958     size_t         *offset,
959     TPMS_SCHEME_HASH *dest);
960 
961 TSS2_RC
962 Tss2_MU_TPMS_SCHEME_ECDAA_Marshal(
963     TPMS_SCHEME_ECDAA  const *src,
964     uint8_t         buffer[],
965     size_t          buffer_size,
966     size_t         *offset);
967 
968 TSS2_RC
969 Tss2_MU_TPMS_SCHEME_ECDAA_Unmarshal(
970     uint8_t const   buffer[],
971     size_t          buffer_size,
972     size_t         *offset,
973     TPMS_SCHEME_ECDAA *dest);
974 
975 TSS2_RC
976 Tss2_MU_TPMS_SCHEME_XOR_Marshal(
977     TPMS_SCHEME_XOR  const *src,
978     uint8_t         buffer[],
979     size_t          buffer_size,
980     size_t         *offset);
981 
982 TSS2_RC
983 Tss2_MU_TPMS_SCHEME_XOR_Unmarshal(
984     uint8_t const   buffer[],
985     size_t          buffer_size,
986     size_t         *offset,
987     TPMS_SCHEME_XOR *dest);
988 
989 TSS2_RC
990 Tss2_MU_TPMS_SIGNATURE_RSA_Marshal(
991     TPMS_SIGNATURE_RSA  const *src,
992     uint8_t         buffer[],
993     size_t          buffer_size,
994     size_t         *offset);
995 
996 TSS2_RC
997 Tss2_MU_TPMS_SIGNATURE_RSA_Unmarshal(
998     uint8_t const   buffer[],
999     size_t          buffer_size,
1000     size_t         *offset,
1001     TPMS_SIGNATURE_RSA *dest);
1002 
1003 TSS2_RC
1004 Tss2_MU_TPMS_SIGNATURE_ECC_Marshal(
1005     TPMS_SIGNATURE_ECC  const *src,
1006     uint8_t         buffer[],
1007     size_t          buffer_size,
1008     size_t         *offset);
1009 
1010 TSS2_RC
1011 Tss2_MU_TPMS_SIGNATURE_ECC_Unmarshal(
1012     uint8_t const   buffer[],
1013     size_t          buffer_size,
1014     size_t         *offset,
1015     TPMS_SIGNATURE_ECC *dest);
1016 
1017 TSS2_RC
1018 Tss2_MU_TPMS_NV_PIN_COUNTER_PARAMETERS_Marshal(
1019     TPMS_NV_PIN_COUNTER_PARAMETERS  const *src,
1020     uint8_t         buffer[],
1021     size_t          buffer_size,
1022     size_t         *offset);
1023 
1024 TSS2_RC
1025 Tss2_MU_TPMS_NV_PIN_COUNTER_PARAMETERS_Unmarshal(
1026     uint8_t const   buffer[],
1027     size_t          buffer_size,
1028     size_t         *offset,
1029     TPMS_NV_PIN_COUNTER_PARAMETERS *dest);
1030 
1031 TSS2_RC
1032 Tss2_MU_TPMS_CONTEXT_DATA_Marshal(
1033     TPMS_CONTEXT_DATA  const *src,
1034     uint8_t         buffer[],
1035     size_t          buffer_size,
1036     size_t         *offset);
1037 
1038 TSS2_RC
1039 Tss2_MU_TPMS_CONTEXT_DATA_Unmarshal(
1040     uint8_t const   buffer[],
1041     size_t          buffer_size,
1042     size_t         *offset,
1043     TPMS_CONTEXT_DATA *dest);
1044 
1045 TSS2_RC
1046 Tss2_MU_TPMS_PCR_SELECT_Marshal(
1047     TPMS_PCR_SELECT  const *src,
1048     uint8_t         buffer[],
1049     size_t          buffer_size,
1050     size_t         *offset);
1051 
1052 TSS2_RC
1053 Tss2_MU_TPMS_PCR_SELECT_Unmarshal(
1054     uint8_t const   buffer[],
1055     size_t          buffer_size,
1056     size_t         *offset,
1057     TPMS_PCR_SELECT *dest);
1058 
1059 TSS2_RC
1060 Tss2_MU_TPMS_PCR_SELECTION_Marshal(
1061     TPMS_PCR_SELECTION  const *src,
1062     uint8_t         buffer[],
1063     size_t          buffer_size,
1064     size_t         *offset);
1065 
1066 TSS2_RC
1067 Tss2_MU_TPMS_PCR_SELECTION_Unmarshal(
1068     uint8_t const   buffer[],
1069     size_t          buffer_size,
1070     size_t         *offset,
1071     TPMS_PCR_SELECTION *dest);
1072 
1073 TSS2_RC
1074 Tss2_MU_TPMS_TAGGED_PCR_SELECT_Marshal(
1075     TPMS_TAGGED_PCR_SELECT  const *src,
1076     uint8_t         buffer[],
1077     size_t          buffer_size,
1078     size_t         *offset);
1079 
1080 TSS2_RC
1081 Tss2_MU_TPMS_TAGGED_PCR_SELECT_Unmarshal(
1082     uint8_t const   buffer[],
1083     size_t          buffer_size,
1084     size_t         *offset,
1085     TPMS_TAGGED_PCR_SELECT *dest);
1086 
1087 TSS2_RC
1088 Tss2_MU_TPMS_QUOTE_INFO_Marshal(
1089     TPMS_QUOTE_INFO  const *src,
1090     uint8_t         buffer[],
1091     size_t          buffer_size,
1092     size_t         *offset);
1093 
1094 TSS2_RC
1095 Tss2_MU_TPMS_QUOTE_INFO_Unmarshal(
1096     uint8_t const   buffer[],
1097     size_t          buffer_size,
1098     size_t         *offset,
1099     TPMS_QUOTE_INFO *dest);
1100 
1101 TSS2_RC
1102 Tss2_MU_TPMS_CREATION_DATA_Marshal(
1103     TPMS_CREATION_DATA  const *src,
1104     uint8_t         buffer[],
1105     size_t          buffer_size,
1106     size_t         *offset);
1107 
1108 TSS2_RC
1109 Tss2_MU_TPMS_CREATION_DATA_Unmarshal(
1110     uint8_t const   buffer[],
1111     size_t          buffer_size,
1112     size_t         *offset,
1113     TPMS_CREATION_DATA *dest);
1114 
1115 TSS2_RC
1116 Tss2_MU_TPMS_ECC_PARMS_Marshal(
1117     TPMS_ECC_PARMS  const *src,
1118     uint8_t         buffer[],
1119     size_t          buffer_size,
1120     size_t         *offset);
1121 
1122 TSS2_RC
1123 Tss2_MU_TPMS_ECC_PARMS_Unmarshal(
1124     uint8_t const   buffer[],
1125     size_t          buffer_size,
1126     size_t         *offset,
1127     TPMS_ECC_PARMS *dest);
1128 
1129 TSS2_RC
1130 Tss2_MU_TPMS_ATTEST_Marshal(
1131     TPMS_ATTEST     const *src,
1132     uint8_t         buffer[],
1133     size_t          buffer_size,
1134     size_t         *offset);
1135 
1136 TSS2_RC
1137 Tss2_MU_TPMS_ATTEST_Unmarshal(
1138     uint8_t const   buffer[],
1139     size_t          buffer_size,
1140     size_t         *offset,
1141     TPMS_ATTEST *dest);
1142 
1143 TSS2_RC
1144 Tss2_MU_TPMS_ALGORITHM_DETAIL_ECC_Marshal(
1145     TPMS_ALGORITHM_DETAIL_ECC const *src,
1146     uint8_t         buffer[],
1147     size_t          buffer_size,
1148     size_t         *offset);
1149 
1150 TSS2_RC
1151 Tss2_MU_TPMS_ALGORITHM_DETAIL_ECC_Unmarshal(
1152     uint8_t const   buffer[],
1153     size_t          buffer_size,
1154     size_t         *offset,
1155     TPMS_ALGORITHM_DETAIL_ECC *dest);
1156 
1157 TSS2_RC
1158 Tss2_MU_TPMS_CAPABILITY_DATA_Marshal(
1159     TPMS_CAPABILITY_DATA const *src,
1160     uint8_t         buffer[],
1161     size_t          buffer_size,
1162     size_t         *offset);
1163 
1164 TSS2_RC
1165 Tss2_MU_TPMS_CAPABILITY_DATA_Unmarshal(
1166     uint8_t const   buffer[],
1167     size_t          buffer_size,
1168     size_t         *offset,
1169     TPMS_CAPABILITY_DATA *dest);
1170 
1171 TSS2_RC
1172 Tss2_MU_TPMS_KEYEDHASH_PARMS_Marshal(
1173     TPMS_KEYEDHASH_PARMS const *src,
1174     uint8_t         buffer[],
1175     size_t          buffer_size,
1176     size_t         *offset);
1177 
1178 TSS2_RC
1179 Tss2_MU_TPMS_KEYEDHASH_PARMS_Unmarshal(
1180     uint8_t const   buffer[],
1181     size_t          buffer_size,
1182     size_t         *offset,
1183     TPMS_KEYEDHASH_PARMS *dest);
1184 
1185 TSS2_RC
1186 Tss2_MU_TPMS_RSA_PARMS_Marshal(
1187     TPMS_RSA_PARMS  const *src,
1188     uint8_t         buffer[],
1189     size_t          buffer_size,
1190     size_t         *offset);
1191 
1192 TSS2_RC
1193 Tss2_MU_TPMS_RSA_PARMS_Unmarshal(
1194     uint8_t const   buffer[],
1195     size_t          buffer_size,
1196     size_t         *offset,
1197     TPMS_RSA_PARMS *dest);
1198 
1199 TSS2_RC
1200 Tss2_MU_TPMS_SYMCIPHER_PARMS_Marshal(
1201     TPMS_SYMCIPHER_PARMS const *src,
1202     uint8_t         buffer[],
1203     size_t          buffer_size,
1204     size_t         *offset);
1205 
1206 TSS2_RC
1207 Tss2_MU_TPMS_SYMCIPHER_PARMS_Unmarshal(
1208     uint8_t const   buffer[],
1209     size_t          buffer_size,
1210     size_t         *offset,
1211     TPMS_SYMCIPHER_PARMS *dest);
1212 
1213 TSS2_RC
1214 Tss2_MU_TPMS_AC_OUTPUT_Marshal(
1215     TPMS_AC_OUTPUT  const *src,
1216     uint8_t         buffer[],
1217     size_t          buffer_size,
1218     size_t         *offset);
1219 
1220 TSS2_RC
1221 Tss2_MU_TPMS_AC_OUTPUT_Unmarshal(
1222     uint8_t const   buffer[],
1223     size_t          buffer_size,
1224     size_t         *offset,
1225     TPMS_AC_OUTPUT *dest);
1226 
1227 TSS2_RC
1228 Tss2_MU_TPMS_ID_OBJECT_Marshal(
1229     TPMS_ID_OBJECT  const *src,
1230     uint8_t         buffer[],
1231     size_t          buffer_size,
1232     size_t         *offset);
1233 
1234 TSS2_RC
1235 Tss2_MU_TPMS_ID_OBJECT_Unmarshal(
1236     uint8_t const   buffer[],
1237     size_t          buffer_size,
1238     size_t         *offset,
1239     TPMS_ID_OBJECT *dest);
1240 
1241 TSS2_RC
1242 Tss2_MU_TPML_CC_Marshal(
1243     TPML_CC const *src,
1244     uint8_t      buffer[],
1245     size_t       buffer_size,
1246     size_t      *offset);
1247 
1248 TSS2_RC
1249 Tss2_MU_TPML_CC_Unmarshal(
1250     uint8_t const   buffer[],
1251     size_t          buffer_size,
1252     size_t         *offset,
1253     TPML_CC        *dest);
1254 
1255 TSS2_RC
1256 Tss2_MU_TPML_CCA_Marshal(
1257     TPML_CCA const *src,
1258     uint8_t      buffer[],
1259     size_t       buffer_size,
1260     size_t      *offset);
1261 
1262 TSS2_RC
1263 Tss2_MU_TPML_CCA_Unmarshal(
1264     uint8_t const   buffer[],
1265     size_t          buffer_size,
1266     size_t         *offset,
1267     TPML_CCA       *dest);
1268 
1269 TSS2_RC
1270 Tss2_MU_TPML_ALG_Marshal(
1271     TPML_ALG const *src,
1272     uint8_t      buffer[],
1273     size_t       buffer_size,
1274     size_t      *offset);
1275 
1276 TSS2_RC
1277 Tss2_MU_TPML_ALG_Unmarshal(
1278     uint8_t const   buffer[],
1279     size_t          buffer_size,
1280     size_t         *offset,
1281     TPML_ALG       *dest);
1282 
1283 TSS2_RC
1284 Tss2_MU_TPML_HANDLE_Marshal(
1285     TPML_HANDLE const *src,
1286     uint8_t      buffer[],
1287     size_t       buffer_size,
1288     size_t      *offset);
1289 
1290 TSS2_RC
1291 Tss2_MU_TPML_HANDLE_Unmarshal(
1292     uint8_t const   buffer[],
1293     size_t          buffer_size,
1294     size_t         *offset,
1295     TPML_HANDLE    *dest);
1296 
1297 TSS2_RC
1298 Tss2_MU_TPML_DIGEST_Marshal(
1299     TPML_DIGEST const *src,
1300     uint8_t      buffer[],
1301     size_t       buffer_size,
1302     size_t      *offset);
1303 
1304 TSS2_RC
1305 Tss2_MU_TPML_DIGEST_Unmarshal(
1306     uint8_t const   buffer[],
1307     size_t          buffer_size,
1308     size_t         *offset,
1309     TPML_DIGEST    *dest);
1310 
1311 TSS2_RC
1312 Tss2_MU_TPML_DIGEST_VALUES_Marshal(
1313     TPML_DIGEST_VALUES const *src,
1314     uint8_t      buffer[],
1315     size_t       buffer_size,
1316     size_t      *offset);
1317 
1318 TSS2_RC
1319 Tss2_MU_TPML_DIGEST_VALUES_Unmarshal(
1320     uint8_t const   buffer[],
1321     size_t          buffer_size,
1322     size_t         *offset,
1323     TPML_DIGEST_VALUES *dest);
1324 
1325 TSS2_RC
1326 Tss2_MU_TPML_PCR_SELECTION_Marshal(
1327     TPML_PCR_SELECTION const *src,
1328     uint8_t      buffer[],
1329     size_t       buffer_size,
1330     size_t      *offset);
1331 
1332 TSS2_RC
1333 Tss2_MU_TPML_PCR_SELECTION_Unmarshal(
1334     uint8_t const   buffer[],
1335     size_t          buffer_size,
1336     size_t         *offset,
1337     TPML_PCR_SELECTION *dest);
1338 
1339 TSS2_RC
1340 Tss2_MU_TPML_ALG_PROPERTY_Marshal(
1341     TPML_ALG_PROPERTY const *src,
1342     uint8_t      buffer[],
1343     size_t       buffer_size,
1344     size_t      *offset);
1345 
1346 TSS2_RC
1347 Tss2_MU_TPML_ALG_PROPERTY_Unmarshal(
1348     uint8_t const   buffer[],
1349     size_t          buffer_size,
1350     size_t         *offset,
1351     TPML_ALG_PROPERTY *dest);
1352 
1353 TSS2_RC
1354 Tss2_MU_TPML_ECC_CURVE_Marshal(
1355     TPML_ECC_CURVE const *src,
1356     uint8_t      buffer[],
1357     size_t       buffer_size,
1358     size_t      *offset);
1359 
1360 TSS2_RC
1361 Tss2_MU_TPML_ECC_CURVE_Unmarshal(
1362     uint8_t const   buffer[],
1363     size_t          buffer_size,
1364     size_t         *offset,
1365     TPML_ECC_CURVE *dest);
1366 
1367 TSS2_RC
1368 Tss2_MU_TPML_TAGGED_PCR_PROPERTY_Marshal(
1369     TPML_TAGGED_PCR_PROPERTY const *src,
1370     uint8_t      buffer[],
1371     size_t       buffer_size,
1372     size_t      *offset);
1373 
1374 TSS2_RC
1375 Tss2_MU_TPML_TAGGED_PCR_PROPERTY_Unmarshal(
1376     uint8_t const   buffer[],
1377     size_t          buffer_size,
1378     size_t         *offset,
1379     TPML_TAGGED_PCR_PROPERTY *dest);
1380 
1381 TSS2_RC
1382 Tss2_MU_TPML_TAGGED_TPM_PROPERTY_Marshal(
1383     TPML_TAGGED_TPM_PROPERTY const *src,
1384     uint8_t      buffer[],
1385     size_t       buffer_size,
1386     size_t      *offset);
1387 
1388 TSS2_RC
1389 Tss2_MU_TPML_TAGGED_TPM_PROPERTY_Unmarshal(
1390     uint8_t const   buffer[],
1391     size_t          buffer_size,
1392     size_t         *offset,
1393     TPML_TAGGED_TPM_PROPERTY *dest);
1394 
1395 TSS2_RC
1396 Tss2_MU_TPML_INTEL_PTT_PROPERTY_Marshal(
1397     TPML_INTEL_PTT_PROPERTY const *src,
1398     uint8_t      buffer[],
1399     size_t       buffer_size,
1400     size_t      *offset);
1401 
1402 TSS2_RC
1403 Tss2_MU_TPML_INTEL_PTT_PROPERTY_Unmarshal(
1404     uint8_t const   buffer[],
1405     size_t          buffer_size,
1406     size_t         *offset,
1407     TPML_INTEL_PTT_PROPERTY *dest);
1408 
1409 TSS2_RC
1410 Tss2_MU_TPML_AC_CAPABILITIES_Marshal(
1411     TPML_AC_CAPABILITIES const *src,
1412     uint8_t      buffer[],
1413     size_t       buffer_size,
1414     size_t      *offset);
1415 
1416 TSS2_RC
1417 Tss2_MU_TPML_AC_CAPABILITIES_Unmarshal(
1418     uint8_t const   buffer[],
1419     size_t          buffer_size,
1420     size_t         *offset,
1421     TPML_AC_CAPABILITIES *dest);
1422 
1423 TSS2_RC
1424 Tss2_MU_TPMU_HA_Marshal(
1425     TPMU_HA const *src,
1426     uint32_t       selector_value,
1427     uint8_t        buffer[],
1428     size_t         buffer_size,
1429     size_t         *offset);
1430 
1431 TSS2_RC
1432 Tss2_MU_TPMU_HA_Unmarshal(
1433     uint8_t const  buffer[],
1434     size_t         buffer_size,
1435     size_t        *offset,
1436     uint32_t       selector_value,
1437     TPMU_HA       *dest);
1438 
1439 TSS2_RC
1440 Tss2_MU_TPMU_CAPABILITIES_Marshal(
1441     TPMU_CAPABILITIES const *src,
1442     uint32_t       selector_value,
1443     uint8_t        buffer[],
1444     size_t         buffer_size,
1445     size_t         *offset);
1446 
1447 TSS2_RC
1448 Tss2_MU_TPMU_CAPABILITIES_Unmarshal(
1449     uint8_t const  buffer[],
1450     size_t         buffer_size,
1451     size_t        *offset,
1452     uint32_t       selector_value,
1453     TPMU_CAPABILITIES *dest);
1454 
1455 TSS2_RC
1456 Tss2_MU_TPMU_ATTEST_Marshal(
1457     TPMU_ATTEST const *src,
1458     uint32_t       selector_value,
1459     uint8_t        buffer[],
1460     size_t         buffer_size,
1461     size_t         *offset);
1462 
1463 TSS2_RC
1464 Tss2_MU_TPMU_ATTEST_Unmarshal(
1465     uint8_t const  buffer[],
1466     size_t         buffer_size,
1467     size_t        *offset,
1468     uint32_t       selector_value,
1469     TPMU_ATTEST *dest);
1470 
1471 TSS2_RC
1472 Tss2_MU_TPMU_SYM_KEY_BITS_Marshal(
1473     TPMU_SYM_KEY_BITS const *src,
1474     uint32_t       selector_value,
1475     uint8_t        buffer[],
1476     size_t         buffer_size,
1477     size_t         *offset);
1478 
1479 TSS2_RC
1480 Tss2_MU_TPMU_SYM_KEY_BITS_Unmarshal(
1481     uint8_t const  buffer[],
1482     size_t         buffer_size,
1483     size_t        *offset,
1484     uint32_t       selector_value,
1485     TPMU_SYM_KEY_BITS *dest);
1486 
1487 TSS2_RC
1488 Tss2_MU_TPMU_SYM_MODE_Marshal(
1489     TPMU_SYM_MODE const *src,
1490     uint32_t       selector_value,
1491     uint8_t        buffer[],
1492     size_t         buffer_size,
1493     size_t         *offset);
1494 
1495 TSS2_RC
1496 Tss2_MU_TPMU_SYM_MODE_Unmarshal(
1497     uint8_t const  buffer[],
1498     size_t         buffer_size,
1499     size_t        *offset,
1500     uint32_t       selector_value,
1501     TPMU_SYM_MODE *dest);
1502 
1503 TSS2_RC
1504 Tss2_MU_TPMU_SIG_SCHEME_Marshal(
1505     TPMU_SIG_SCHEME const *src,
1506     uint32_t       selector_value,
1507     uint8_t        buffer[],
1508     size_t         buffer_size,
1509     size_t         *offset);
1510 
1511 TSS2_RC
1512 Tss2_MU_TPMU_SIG_SCHEME_Unmarshal(
1513     uint8_t const  buffer[],
1514     size_t         buffer_size,
1515     size_t        *offset,
1516     uint32_t       selector_value,
1517     TPMU_SIG_SCHEME *dest);
1518 
1519 TSS2_RC
1520 Tss2_MU_TPMU_KDF_SCHEME_Marshal(
1521     TPMU_KDF_SCHEME const *src,
1522     uint32_t       selector_value,
1523     uint8_t        buffer[],
1524     size_t         buffer_size,
1525     size_t         *offset);
1526 
1527 TSS2_RC
1528 Tss2_MU_TPMU_KDF_SCHEME_Unmarshal(
1529     uint8_t const  buffer[],
1530     size_t         buffer_size,
1531     size_t        *offset,
1532     uint32_t       selector_value,
1533     TPMU_KDF_SCHEME *dest);
1534 
1535 TSS2_RC
1536 Tss2_MU_TPMU_ASYM_SCHEME_Marshal(
1537     TPMU_ASYM_SCHEME const *src,
1538     uint32_t       selector_value,
1539     uint8_t        buffer[],
1540     size_t         buffer_size,
1541     size_t         *offset);
1542 
1543 TSS2_RC
1544 Tss2_MU_TPMU_ASYM_SCHEME_Unmarshal(
1545     uint8_t const  buffer[],
1546     size_t         buffer_size,
1547     size_t        *offset,
1548     uint32_t       selector_value,
1549     TPMU_ASYM_SCHEME *dest);
1550 
1551 TSS2_RC
1552 Tss2_MU_TPMU_SCHEME_KEYEDHASH_Marshal(
1553     TPMU_SCHEME_KEYEDHASH const *src,
1554     uint32_t       selector_value,
1555     uint8_t        buffer[],
1556     size_t         buffer_size,
1557     size_t         *offset);
1558 
1559 TSS2_RC
1560 Tss2_MU_TPMU_SCHEME_KEYEDHASH_Unmarshal(
1561     uint8_t const  buffer[],
1562     size_t         buffer_size,
1563     size_t        *offset,
1564     uint32_t       selector_value,
1565     TPMU_SCHEME_KEYEDHASH *dest);
1566 
1567 TSS2_RC
1568 Tss2_MU_TPMU_SIGNATURE_Marshal(
1569     TPMU_SIGNATURE const *src,
1570     uint32_t       selector_value,
1571     uint8_t        buffer[],
1572     size_t         buffer_size,
1573     size_t         *offset);
1574 
1575 TSS2_RC
1576 Tss2_MU_TPMU_SIGNATURE_Unmarshal(
1577     uint8_t const  buffer[],
1578     size_t         buffer_size,
1579     size_t        *offset,
1580     uint32_t       selector_value,
1581     TPMU_SIGNATURE *dest);
1582 
1583 TSS2_RC
1584 Tss2_MU_TPMU_SENSITIVE_COMPOSITE_Marshal(
1585     TPMU_SENSITIVE_COMPOSITE const *src,
1586     uint32_t       selector_value,
1587     uint8_t        buffer[],
1588     size_t         buffer_size,
1589     size_t         *offset);
1590 
1591 TSS2_RC
1592 Tss2_MU_TPMU_SENSITIVE_COMPOSITE_Unmarshal(
1593     uint8_t const  buffer[],
1594     size_t         buffer_size,
1595     size_t        *offset,
1596     uint32_t       selector_value,
1597     TPMU_SENSITIVE_COMPOSITE *dest);
1598 
1599 TSS2_RC
1600 Tss2_MU_TPMU_ENCRYPTED_SECRET_Marshal(
1601     TPMU_ENCRYPTED_SECRET const *src,
1602     uint32_t       selector_value,
1603     uint8_t        buffer[],
1604     size_t         buffer_size,
1605     size_t         *offset);
1606 
1607 TSS2_RC
1608 Tss2_MU_TPMU_ENCRYPTED_SECRET_Unmarshal(
1609     uint8_t const  buffer[],
1610     size_t         buffer_size,
1611     size_t        *offset,
1612     uint32_t       selector_value,
1613     TPMU_ENCRYPTED_SECRET *dest);
1614 
1615 TSS2_RC
1616 Tss2_MU_TPMU_PUBLIC_PARMS_Marshal(
1617     TPMU_PUBLIC_PARMS const *src,
1618     uint32_t       selector_value,
1619     uint8_t        buffer[],
1620     size_t         buffer_size,
1621     size_t         *offset);
1622 
1623 TSS2_RC
1624 Tss2_MU_TPMU_PUBLIC_PARMS_Unmarshal(
1625     uint8_t const  buffer[],
1626     size_t         buffer_size,
1627     size_t        *offset,
1628     uint32_t       selector_value,
1629     TPMU_PUBLIC_PARMS *dest);
1630 
1631 TSS2_RC
1632 Tss2_MU_TPMU_PUBLIC_ID_Marshal(
1633     TPMU_PUBLIC_ID const *src,
1634     uint32_t       selector_value,
1635     uint8_t        buffer[],
1636     size_t         buffer_size,
1637     size_t         *offset);
1638 
1639 TSS2_RC
1640 Tss2_MU_TPMU_PUBLIC_ID_Unmarshal(
1641     uint8_t const  buffer[],
1642     size_t         buffer_size,
1643     size_t        *offset,
1644     uint32_t       selector_value,
1645     TPMU_PUBLIC_ID *dest);
1646 
1647 TSS2_RC
1648 Tss2_MU_TPMU_NAME_Marshal(
1649     TPMU_NAME      const *src,
1650     uint32_t       selector_value,
1651     uint8_t        buffer[],
1652     size_t         buffer_size,
1653     size_t         *offset);
1654 
1655 TSS2_RC
1656 Tss2_MU_TPMU_NAME_Unmarshal(
1657     uint8_t const  buffer[],
1658     size_t         buffer_size,
1659     size_t        *offset,
1660     uint32_t       selector_value,
1661     TPMU_NAME     *dest);
1662 
1663 TSS2_RC
1664 Tss2_MU_TPMT_HA_Marshal(
1665     TPMT_HA const *src,
1666     uint8_t        buffer[],
1667     size_t         buffer_size,
1668     size_t         *offset);
1669 
1670 TSS2_RC
1671 Tss2_MU_TPMT_HA_Unmarshal(
1672     uint8_t const  buffer[],
1673     size_t         buffer_size,
1674     size_t        *offset,
1675     TPMT_HA *dest);
1676 
1677 TSS2_RC
1678 Tss2_MU_TPMT_SYM_DEF_Marshal(
1679     TPMT_SYM_DEF const *src,
1680     uint8_t        buffer[],
1681     size_t         buffer_size,
1682     size_t         *offset);
1683 
1684 TSS2_RC
1685 Tss2_MU_TPMT_SYM_DEF_Unmarshal(
1686     uint8_t const  buffer[],
1687     size_t         buffer_size,
1688     size_t        *offset,
1689     TPMT_SYM_DEF  *dest);
1690 
1691 TSS2_RC
1692 Tss2_MU_TPMT_SYM_DEF_OBJECT_Marshal(
1693     TPMT_SYM_DEF_OBJECT const *src,
1694     uint8_t        buffer[],
1695     size_t         buffer_size,
1696     size_t         *offset);
1697 
1698 TSS2_RC
1699 Tss2_MU_TPMT_SYM_DEF_OBJECT_Unmarshal(
1700     uint8_t const  buffer[],
1701     size_t         buffer_size,
1702     size_t        *offset,
1703     TPMT_SYM_DEF_OBJECT *dest);
1704 
1705 TSS2_RC
1706 Tss2_MU_TPMT_KEYEDHASH_SCHEME_Marshal(
1707     TPMT_KEYEDHASH_SCHEME const *src,
1708     uint8_t        buffer[],
1709     size_t         buffer_size,
1710     size_t         *offset);
1711 
1712 TSS2_RC
1713 Tss2_MU_TPMT_KEYEDHASH_SCHEME_Unmarshal(
1714     uint8_t const  buffer[],
1715     size_t         buffer_size,
1716     size_t        *offset,
1717     TPMT_KEYEDHASH_SCHEME *dest);
1718 
1719 TSS2_RC
1720 Tss2_MU_TPMT_SIG_SCHEME_Marshal(
1721     TPMT_SIG_SCHEME const *src,
1722     uint8_t        buffer[],
1723     size_t         buffer_size,
1724     size_t         *offset);
1725 
1726 TSS2_RC
1727 Tss2_MU_TPMT_SIG_SCHEME_Unmarshal(
1728     uint8_t const  buffer[],
1729     size_t         buffer_size,
1730     size_t        *offset,
1731     TPMT_SIG_SCHEME *dest);
1732 
1733 TSS2_RC
1734 Tss2_MU_TPMT_KDF_SCHEME_Marshal(
1735     TPMT_KDF_SCHEME const *src,
1736     uint8_t        buffer[],
1737     size_t         buffer_size,
1738     size_t         *offset);
1739 
1740 TSS2_RC
1741 Tss2_MU_TPMT_KDF_SCHEME_Unmarshal(
1742     uint8_t const  buffer[],
1743     size_t         buffer_size,
1744     size_t        *offset,
1745     TPMT_KDF_SCHEME *dest);
1746 
1747 TSS2_RC
1748 Tss2_MU_TPMT_ASYM_SCHEME_Marshal(
1749     TPMT_ASYM_SCHEME const *src,
1750     uint8_t        buffer[],
1751     size_t         buffer_size,
1752     size_t         *offset);
1753 
1754 TSS2_RC
1755 Tss2_MU_TPMT_ASYM_SCHEME_Unmarshal(
1756     uint8_t const  buffer[],
1757     size_t         buffer_size,
1758     size_t        *offset,
1759     TPMT_ASYM_SCHEME *dest);
1760 
1761 TSS2_RC
1762 Tss2_MU_TPMT_RSA_SCHEME_Marshal(
1763     TPMT_RSA_SCHEME const *src,
1764     uint8_t        buffer[],
1765     size_t         buffer_size,
1766     size_t         *offset);
1767 
1768 TSS2_RC
1769 Tss2_MU_TPMT_RSA_SCHEME_Unmarshal(
1770     uint8_t const  buffer[],
1771     size_t         buffer_size,
1772     size_t        *offset,
1773     TPMT_RSA_SCHEME *dest);
1774 
1775 TSS2_RC
1776 Tss2_MU_TPMT_RSA_DECRYPT_Marshal(
1777     TPMT_RSA_DECRYPT const *src,
1778     uint8_t        buffer[],
1779     size_t         buffer_size,
1780     size_t         *offset);
1781 
1782 TSS2_RC
1783 Tss2_MU_TPMT_RSA_DECRYPT_Unmarshal(
1784     uint8_t const  buffer[],
1785     size_t         buffer_size,
1786     size_t        *offset,
1787     TPMT_RSA_DECRYPT *dest);
1788 
1789 TSS2_RC
1790 Tss2_MU_TPMT_ECC_SCHEME_Marshal(
1791     TPMT_ECC_SCHEME const *src,
1792     uint8_t        buffer[],
1793     size_t         buffer_size,
1794     size_t         *offset);
1795 
1796 TSS2_RC
1797 Tss2_MU_TPMT_ECC_SCHEME_Unmarshal(
1798     uint8_t const  buffer[],
1799     size_t         buffer_size,
1800     size_t        *offset,
1801     TPMT_ECC_SCHEME *dest);
1802 
1803 TSS2_RC
1804 Tss2_MU_TPMT_SIGNATURE_Marshal(
1805     TPMT_SIGNATURE const *src,
1806     uint8_t        buffer[],
1807     size_t         buffer_size,
1808     size_t         *offset);
1809 
1810 TSS2_RC
1811 Tss2_MU_TPMT_SIGNATURE_Unmarshal(
1812     uint8_t const  buffer[],
1813     size_t         buffer_size,
1814     size_t        *offset,
1815     TPMT_SIGNATURE *dest);
1816 
1817 TSS2_RC
1818 Tss2_MU_TPMT_SENSITIVE_Marshal(
1819     TPMT_SENSITIVE const *src,
1820     uint8_t        buffer[],
1821     size_t         buffer_size,
1822     size_t         *offset);
1823 
1824 TSS2_RC
1825 Tss2_MU_TPMT_SENSITIVE_Unmarshal(
1826     uint8_t const  buffer[],
1827     size_t         buffer_size,
1828     size_t        *offset,
1829     TPMT_SENSITIVE *dest);
1830 
1831 TSS2_RC
1832 Tss2_MU_TPMT_PUBLIC_Marshal(
1833     TPMT_PUBLIC    const *src,
1834     uint8_t        buffer[],
1835     size_t         buffer_size,
1836     size_t         *offset);
1837 
1838 TSS2_RC
1839 Tss2_MU_TPMT_PUBLIC_Unmarshal(
1840     uint8_t const  buffer[],
1841     size_t         buffer_size,
1842     size_t        *offset,
1843     TPMT_PUBLIC   *dest);
1844 
1845 TSS2_RC
1846 Tss2_MU_TPMT_PUBLIC_PARMS_Marshal(
1847     TPMT_PUBLIC_PARMS const *src,
1848     uint8_t        buffer[],
1849     size_t         buffer_size,
1850     size_t         *offset);
1851 
1852 TSS2_RC
1853 Tss2_MU_TPMT_PUBLIC_PARMS_Unmarshal(
1854     uint8_t const  buffer[],
1855     size_t         buffer_size,
1856     size_t        *offset,
1857     TPMT_PUBLIC_PARMS *dest);
1858 
1859 TSS2_RC
1860 Tss2_MU_TPMT_TK_CREATION_Marshal(
1861     TPMT_TK_CREATION const *src,
1862     uint8_t        buffer[],
1863     size_t         buffer_size,
1864     size_t         *offset);
1865 
1866 TSS2_RC
1867 Tss2_MU_TPMT_TK_CREATION_Unmarshal(
1868     uint8_t const  buffer[],
1869     size_t         buffer_size,
1870     size_t        *offset,
1871     TPMT_TK_CREATION *dest);
1872 
1873 TSS2_RC
1874 Tss2_MU_TPMT_TK_VERIFIED_Marshal(
1875     TPMT_TK_VERIFIED const *src,
1876     uint8_t        buffer[],
1877     size_t         buffer_size,
1878     size_t         *offset);
1879 
1880 TSS2_RC
1881 Tss2_MU_TPMT_TK_VERIFIED_Unmarshal(
1882     uint8_t const  buffer[],
1883     size_t         buffer_size,
1884     size_t        *offset,
1885     TPMT_TK_VERIFIED *dest);
1886 
1887 TSS2_RC
1888 Tss2_MU_TPMT_TK_AUTH_Marshal(
1889     TPMT_TK_AUTH   const *src,
1890     uint8_t        buffer[],
1891     size_t         buffer_size,
1892     size_t         *offset);
1893 
1894 TSS2_RC
1895 Tss2_MU_TPMT_TK_AUTH_Unmarshal(
1896     uint8_t const  buffer[],
1897     size_t         buffer_size,
1898     size_t        *offset,
1899     TPMT_TK_AUTH  *dest);
1900 
1901 TSS2_RC
1902 Tss2_MU_TPMT_TK_HASHCHECK_Marshal(
1903     TPMT_TK_HASHCHECK const *src,
1904     uint8_t        buffer[],
1905     size_t         buffer_size,
1906     size_t         *offset);
1907 
1908 TSS2_RC
1909 Tss2_MU_TPMT_TK_HASHCHECK_Unmarshal(
1910     uint8_t const  buffer[],
1911     size_t         buffer_size,
1912     size_t        *offset,
1913     TPMT_TK_HASHCHECK *dest);
1914 
1915 TSS2_RC Tss2_MU_TPM2_HANDLE_Marshal(
1916     TPM2_HANDLE     in,
1917     uint8_t         *buffer,
1918     size_t          size,
1919     size_t          *offset);
1920 
1921 TSS2_RC
1922 Tss2_MU_TPM2_HANDLE_Unmarshal(
1923     uint8_t const   buffer[],
1924     size_t          size,
1925     size_t          *offset,
1926     TPM2_HANDLE     *out);
1927 
1928 TSS2_RC
1929 Tss2_MU_TPMI_ALG_HASH_Marshal(
1930     TPMI_ALG_HASH   in,
1931     uint8_t         *buffer,
1932     size_t          size,
1933     size_t          *offset);
1934 
1935 TSS2_RC
1936 Tss2_MU_TPMI_ALG_HASH_Unmarshal(
1937     uint8_t const   buffer[],
1938     size_t          size,
1939     size_t          *offset,
1940     TPMI_ALG_HASH   *out);
1941 
1942 TSS2_RC
1943 Tss2_MU_BYTE_Marshal(
1944     BYTE            in,
1945     uint8_t         *buffer,
1946     size_t          size,
1947     size_t          *offset);
1948 
1949 TSS2_RC
1950 Tss2_MU_BYTE_Unmarshal(
1951     uint8_t const   buffer[],
1952     size_t          size,
1953     size_t          *offset,
1954     BYTE            *out);
1955 
1956 TSS2_RC
1957 Tss2_MU_TPM2_SE_Marshal(
1958     TPM2_SE         in,
1959     uint8_t         *buffer,
1960     size_t          size,
1961     size_t          *offset);
1962 
1963 TSS2_RC
1964 Tss2_MU_TPM2_SE_Unmarshal(
1965     uint8_t const   buffer[],
1966     size_t          size,
1967     size_t          *offset,
1968     TPM2_SE         *out);
1969 
1970 TSS2_RC
1971 Tss2_MU_TPM2_NT_Marshal(
1972     TPM2_NT         in,
1973     uint8_t         *buffer,
1974     size_t          size,
1975     size_t          *offset);
1976 
1977 TSS2_RC
1978 Tss2_MU_TPM2_NT_Unmarshal(
1979     uint8_t const   buffer[],
1980     size_t          size,
1981     size_t          *offset,
1982     TPM2_NT         *out);
1983 
1984 TSS2_RC
1985 Tss2_MU_TPMS_EMPTY_Marshal(
1986     TPMS_EMPTY const *in,
1987     uint8_t         *buffer,
1988     size_t          size,
1989     size_t          *offset);
1990 
1991 TSS2_RC
1992 Tss2_MU_TPMS_EMPTY_Unmarshal(
1993     uint8_t const   buffer[],
1994     size_t          size,
1995     size_t          *offset,
1996     TPMS_EMPTY      *out);
1997 
1998 #ifdef __cplusplus
1999 }
2000 #endif
2001 
2002 #endif /* MARSHAL_H */
2003