tpm2-tss 4.0.1
TPM Software stack 2.0 TCG spec compliant implementation
tss2_esys.h
1/* SPDX-License-Identifier: BSD-2-Clause */
2/*******************************************************************************
3 * Copyright 2017-2018, Fraunhofer SIT sponsored by Infineon Technologies AG
4 * All rights reserved.
5 *******************************************************************************/
6#ifndef TSS2_ESYS_H
7#define TSS2_ESYS_H
8
9#include "tss2_tcti.h"
10#include "tss2_sys.h"
11
12#ifdef __cplusplus
13extern "C" {
14#endif
15
16typedef uint32_t ESYS_TR;
17
18#define ESYS_TR_NONE 0xfffU
19#define ESYS_TR_PASSWORD 0x0ffU
20#define ESYS_TR_PCR0 0U
21#define ESYS_TR_PCR1 1U
22#define ESYS_TR_PCR2 2U
23#define ESYS_TR_PCR3 3U
24#define ESYS_TR_PCR4 4U
25#define ESYS_TR_PCR5 5U
26#define ESYS_TR_PCR6 6U
27#define ESYS_TR_PCR7 7U
28#define ESYS_TR_PCR8 8U
29#define ESYS_TR_PCR9 9U
30#define ESYS_TR_PCR10 10U
31#define ESYS_TR_PCR11 11U
32#define ESYS_TR_PCR12 12U
33#define ESYS_TR_PCR13 13U
34#define ESYS_TR_PCR14 14U
35#define ESYS_TR_PCR15 15U
36#define ESYS_TR_PCR16 16U
37#define ESYS_TR_PCR17 17U
38#define ESYS_TR_PCR18 18U
39#define ESYS_TR_PCR19 19U
40#define ESYS_TR_PCR20 20U
41#define ESYS_TR_PCR21 21U
42#define ESYS_TR_PCR22 22U
43#define ESYS_TR_PCR23 23U
44#define ESYS_TR_PCR24 24U
45#define ESYS_TR_PCR25 25U
46#define ESYS_TR_PCR26 26U
47#define ESYS_TR_PCR27 27U
48#define ESYS_TR_PCR28 28U
49#define ESYS_TR_PCR29 29U
50#define ESYS_TR_PCR30 30U
51#define ESYS_TR_PCR31 31U
52
53/* From TPM_RH_CONSTANTS */
54#define ESYS_TR_RH_OWNER 0x101U
55#define ESYS_TR_RH_NULL 0x107U
56#define ESYS_TR_RH_LOCKOUT 0x10AU
57#define ESYS_TR_RH_ENDORSEMENT 0x10BU
58#define ESYS_TR_RH_PLATFORM 0x10CU
59#define ESYS_TR_RH_PLATFORM_NV 0x10DU
60
61#define ESYS_TR_RH_AUTH_FIRST 0x110U
62#define ESYS_TR_RH_AUTH(x) (ESYS_TR_RH_AUTH_FIRST + (ESYS_TR)(x))
63#define ESYS_TR_RH_ACT_FIRST 0x120U
64#define ESYS_TR_RH_ACT(x) (ESYS_TR_RH_ACT_FIRST + (ESYS_TR)(x))
65#define ESYS_TR_RH_ACT_0 ESYS_TR_RH_ACT_FIRST
66#define ESYS_TR_RH_ACT_1 0x121U
67#define ESYS_TR_RH_ACT_2 0x122U
68#define ESYS_TR_RH_ACT_3 0x123U
69#define ESYS_TR_RH_ACT_4 0x124U
70#define ESYS_TR_RH_ACT_5 0x125U
71#define ESYS_TR_RH_ACT_6 0x126U
72#define ESYS_TR_RH_ACT_7 0x127U
73#define ESYS_TR_RH_ACT_8 0x128U
74#define ESYS_TR_RH_ACT_9 0x129U
75#define ESYS_TR_RH_ACT_A 0x12AU
76#define ESYS_TR_RH_ACT_B 0x12BU
77#define ESYS_TR_RH_ACT_C 0x12CU
78#define ESYS_TR_RH_ACT_D 0x12DU
79#define ESYS_TR_RH_ACT_E 0x12EU
80#define ESYS_TR_RH_ACT_F 0x12FU
81#define ESYS_TR_RH_ACT_LAST ESYS_TR_RH_ACT_F
82#define ESYS_TR_RH_AC_FIRST 0x140U
83#define ESYS_TR_RH_AC(x) (ESYS_TR_RH_AC_FIRST + (ESYS_TR)(x))
84#define ESYS_TR_RH_AC_LAST (ESYS_TR_RH_AC_FIRST + 0xFFFFU)
85
86typedef struct ESYS_CONTEXT ESYS_CONTEXT;
87
89
90/*
91 * Crypto Backend Support
92 */
93
103typedef TSS2_RC
104 (*ESYS_CRYPTO_HASH_START_FNP)(
105 ESYS_CRYPTO_CONTEXT_BLOB ** context,
106 TPM2_ALG_ID hashAlg,
107 void *userdata);
108
120typedef TSS2_RC
121 (*ESYS_CRYPTO_HASH_UPDATE_FNP)(
122 ESYS_CRYPTO_CONTEXT_BLOB * context,
123 const uint8_t *buffer,
124 size_t size,
125 void *userdata);
126
138typedef TSS2_RC
139 (*ESYS_CRYPTO_HASH_FINISH_FNP)(
140 ESYS_CRYPTO_CONTEXT_BLOB **context,
141 uint8_t *buffer,
142 size_t *size,
143 void *userdata);
144
151typedef void
152 (*ESYS_CRYPTO_HASH_ABORT_FNP)(
153 ESYS_CRYPTO_CONTEXT_BLOB **context,
154 void *userdata);
155
168typedef TSS2_RC
169 (*ESYS_CRYPTO_HMAC_START_FNP)(
170 ESYS_CRYPTO_CONTEXT_BLOB **context,
171 TPM2_ALG_ID hashAlg,
172 const uint8_t *key,
173 size_t size,
174 void *userdata);
175
187typedef TSS2_RC
188 (*ESYS_CRYPTO_HMAC_UPDATE_FNP)(
190 const uint8_t *buffer,
191 size_t size,
192 void *userdata);
193
205typedef TSS2_RC
206 (*ESYS_CRYPTO_HMAC_FINISH_FNP)(
207 ESYS_CRYPTO_CONTEXT_BLOB **context,
208 uint8_t *buffer,
209 size_t *size,
210 void *userdata);
211
218typedef void
219 (*ESYS_CRYPTO_HMAC_ABORT_FNP)(
220 ESYS_CRYPTO_CONTEXT_BLOB **context,
221 void *userdata);
222
233typedef TSS2_RC
234 (*ESYS_CRYPTO_GET_RANDOM2B_FNP)(
235 TPM2B_NONCE *nonce,
236 size_t num_bytes,
237 void *userdata);
238
256typedef TSS2_RC
257 (*ESYS_CRYPTO_GET_ECDH_POINT_FNP)(
258 TPM2B_PUBLIC *key,
259 size_t max_out_size,
260 TPM2B_ECC_PARAMETER *Z,
261 TPMS_ECC_POINT *Q,
262 BYTE *out_buffer,
263 size_t *out_size,
264 void *userdata);
265
281typedef TSS2_RC
282 (*ESYS_CRYPTO_AES_ENCRYPT_FNP)(
283 uint8_t *key,
284 TPM2_ALG_ID tpm_sym_alg,
285 TPMI_AES_KEY_BITS key_bits,
286 TPM2_ALG_ID tpm_mode,
287 uint8_t *buffer,
288 size_t buffer_size,
289 uint8_t *iv,
290 void *userdata);
291
307typedef TSS2_RC
308 (*ESYS_CRYPTO_AES_DECRYPT_FNP)(
309 uint8_t *key,
310 TPM2_ALG_ID tpm_sym_alg,
311 TPMI_AES_KEY_BITS key_bits,
312 TPM2_ALG_ID tpm_mode,
313 uint8_t *buffer,
314 size_t buffer_size,
315 uint8_t *iv,
316 void *userdata);
317
333typedef TSS2_RC
334 (*ESYS_CRYPTO_PK_RSA_ENCRYPT_FNP)(
335 TPM2B_PUBLIC * pub_tpm_key,
336 size_t in_size,
337 BYTE *in_buffer,
338 size_t max_out_size,
339 BYTE *out_buffer,
340 size_t *out_size,
341 const char *label,
342 void *userdata);
343
353typedef TSS2_RC (*ESYS_CRYPTO_INIT_FNP)(void *userdata);
354
357 ESYS_CRYPTO_PK_RSA_ENCRYPT_FNP rsa_pk_encrypt;
358 ESYS_CRYPTO_HASH_START_FNP hash_start;
359 ESYS_CRYPTO_HASH_UPDATE_FNP hash_update;
360 ESYS_CRYPTO_HASH_FINISH_FNP hash_finish;
361 ESYS_CRYPTO_HASH_ABORT_FNP hash_abort;
362 ESYS_CRYPTO_HMAC_START_FNP hmac_start;
363 ESYS_CRYPTO_HMAC_UPDATE_FNP hmac_update;
364 ESYS_CRYPTO_HMAC_FINISH_FNP hmac_finish;
365 ESYS_CRYPTO_HMAC_ABORT_FNP hmac_abort;
366 ESYS_CRYPTO_GET_RANDOM2B_FNP get_random2b;
367 ESYS_CRYPTO_GET_ECDH_POINT_FNP get_ecdh_point;
368 ESYS_CRYPTO_AES_ENCRYPT_FNP aes_encrypt;
369 ESYS_CRYPTO_AES_DECRYPT_FNP aes_decrypt;
370 ESYS_CRYPTO_INIT_FNP init;
371 void *userdata;
372};
373
374/*
375 * TPM 2.0 ESAPI Functions
376 */
377
378TSS2_RC
379Esys_Initialize(
380 ESYS_CONTEXT **esys_context,
381 TSS2_TCTI_CONTEXT *tcti,
382 TSS2_ABI_VERSION *abiVersion);
383
384void
385Esys_Finalize(
386 ESYS_CONTEXT **context);
387
388TSS2_RC
389Esys_GetTcti(
390 ESYS_CONTEXT *esys_context,
391 TSS2_TCTI_CONTEXT **tcti);
392
393TSS2_RC
394Esys_GetPollHandles(
395 ESYS_CONTEXT *esys_context,
396 TSS2_TCTI_POLL_HANDLE **handles,
397 size_t *count);
398
399TSS2_RC
400Esys_SetTimeout(
401 ESYS_CONTEXT *esys_context,
402 int32_t timeout);
403
404TSS2_RC
405Esys_TR_Serialize(
406 ESYS_CONTEXT *esys_context,
407 ESYS_TR object,
408 uint8_t **buffer,
409 size_t *buffer_size);
410
411TSS2_RC
412Esys_TR_Deserialize(
413 ESYS_CONTEXT *esys_context,
414 uint8_t const *buffer,
415 size_t buffer_size,
416 ESYS_TR *esys_handle);
417
418TSS2_RC
419Esys_TR_FromTPMPublic_Async(
420 ESYS_CONTEXT *esysContext,
421 TPM2_HANDLE tpm_handle,
422 ESYS_TR optionalSession1,
423 ESYS_TR optionalSession2,
424 ESYS_TR optionalSession3);
425
426TSS2_RC
427Esys_TR_FromTPMPublic_Finish(
428 ESYS_CONTEXT *esysContext,
429 ESYS_TR *object);
430
431TSS2_RC
432Esys_TR_FromTPMPublic(
433 ESYS_CONTEXT *esysContext,
434 TPM2_HANDLE tpm_handle,
435 ESYS_TR optionalSession1,
436 ESYS_TR optionalSession2,
437 ESYS_TR optionalSession3,
438 ESYS_TR *object);
439
440TSS2_RC
441Esys_TR_Close(
442 ESYS_CONTEXT *esys_context,
443 ESYS_TR *rsrc_handle);
444
445TSS2_RC
446Esys_TR_SetAuth(
447 ESYS_CONTEXT *esysContext,
448 ESYS_TR handle,
449 TPM2B_AUTH const *authValue);
450
451TSS2_RC
452Esys_TR_GetName(
453 ESYS_CONTEXT *esysContext,
454 ESYS_TR handle,
455 TPM2B_NAME **name);
456
457TSS2_RC
458Esys_TRSess_GetAttributes(
459 ESYS_CONTEXT *esysContext,
460 ESYS_TR session,
461 TPMA_SESSION *flags);
462
463TSS2_RC
464Esys_TRSess_SetAttributes(
465 ESYS_CONTEXT *esysContext,
466 ESYS_TR session,
467 TPMA_SESSION flags,
468 TPMA_SESSION mask);
469
470TSS2_RC
471Esys_TRSess_GetNonceTPM(
472 ESYS_CONTEXT *esysContext,
473 ESYS_TR session,
474 TPM2B_NONCE **nonceTPM);
475
476TSS2_RC
477Esys_TR_GetTpmHandle(
478 ESYS_CONTEXT *esys_context,
479 ESYS_TR esys_handle,
480 TPM2_HANDLE *tpm_handle);
481
482TSS2_RC
483Esys_TRSess_GetAuthRequired(
484 ESYS_CONTEXT *esys_context,
485 ESYS_TR esys_handle,
486 TPMI_YES_NO *auth_needed);
487
488/* Table 5 - TPM2_Startup Command */
489
490TSS2_RC
491Esys_Startup(
492 ESYS_CONTEXT *esysContext,
493 TPM2_SU startupType);
494
495TSS2_RC
496Esys_Startup_Async(
497 ESYS_CONTEXT *esysContext,
498 TPM2_SU startupType);
499
500TSS2_RC
501Esys_Startup_Finish(
502 ESYS_CONTEXT *esysContext);
503
504/* Table 7 - TPM2_Shutdown Command */
505
506TSS2_RC
507Esys_Shutdown(
508 ESYS_CONTEXT *esysContext,
509 ESYS_TR shandle1,
510 ESYS_TR shandle2,
511 ESYS_TR shandle3,
512 TPM2_SU shutdownType);
513
514TSS2_RC
515Esys_Shutdown_Async(
516 ESYS_CONTEXT *esysContext,
517 ESYS_TR shandle1,
518 ESYS_TR shandle2,
519 ESYS_TR shandle3,
520 TPM2_SU shutdownType);
521
522TSS2_RC
523Esys_Shutdown_Finish(
524 ESYS_CONTEXT *esysContext);
525
526/* Table 9 - TPM2_SelfTest Command */
527
528TSS2_RC
529Esys_SelfTest(
530 ESYS_CONTEXT *esysContext,
531 ESYS_TR shandle1,
532 ESYS_TR shandle2,
533 ESYS_TR shandle3,
534 TPMI_YES_NO fullTest);
535
536TSS2_RC
537Esys_SelfTest_Async(
538 ESYS_CONTEXT *esysContext,
539 ESYS_TR shandle1,
540 ESYS_TR shandle2,
541 ESYS_TR shandle3,
542 TPMI_YES_NO fullTest);
543
544TSS2_RC
545Esys_SelfTest_Finish(
546 ESYS_CONTEXT *esysContext);
547
548/* Table 11 - TPM2_IncrementalSelfTest Command */
549
550TSS2_RC
551Esys_IncrementalSelfTest(
552 ESYS_CONTEXT *esysContext,
553 ESYS_TR shandle1,
554 ESYS_TR shandle2,
555 ESYS_TR shandle3,
556 const TPML_ALG *toTest,
557 TPML_ALG **toDoList);
558
559TSS2_RC
560Esys_IncrementalSelfTest_Async(
561 ESYS_CONTEXT *esysContext,
562 ESYS_TR shandle1,
563 ESYS_TR shandle2,
564 ESYS_TR shandle3,
565 const TPML_ALG *toTest);
566
567TSS2_RC
568Esys_IncrementalSelfTest_Finish(
569 ESYS_CONTEXT *esysContext,
570 TPML_ALG **toDoList);
571
572/* Table 13 - TPM2_GetTestResult Command */
573
574TSS2_RC
575Esys_GetTestResult(
576 ESYS_CONTEXT *esysContext,
577 ESYS_TR shandle1,
578 ESYS_TR shandle2,
579 ESYS_TR shandle3,
580 TPM2B_MAX_BUFFER **outData,
581 TPM2_RC *testResult);
582
583TSS2_RC
584Esys_GetTestResult_Async(
585 ESYS_CONTEXT *esysContext,
586 ESYS_TR shandle1,
587 ESYS_TR shandle2,
588 ESYS_TR shandle3);
589
590TSS2_RC
591Esys_GetTestResult_Finish(
592 ESYS_CONTEXT *esysContext,
593 TPM2B_MAX_BUFFER **outData,
594 TPM2_RC *testResult);
595
596/* Table 15 - TPM2_StartAuthSession Command */
597
598TSS2_RC
599Esys_StartAuthSession(
600 ESYS_CONTEXT *esysContext,
601 ESYS_TR tpmKey,
602 ESYS_TR bind,
603 ESYS_TR shandle1,
604 ESYS_TR shandle2,
605 ESYS_TR shandle3,
606 const TPM2B_NONCE *nonceCaller,
607 TPM2_SE sessionType,
608 const TPMT_SYM_DEF *symmetric,
609 TPMI_ALG_HASH authHash,
610 ESYS_TR *sessionHandle);
611
612TSS2_RC
613Esys_StartAuthSession_Async(
614 ESYS_CONTEXT *esysContext,
615 ESYS_TR tpmKey,
616 ESYS_TR bind,
617 ESYS_TR shandle1,
618 ESYS_TR shandle2,
619 ESYS_TR shandle3,
620 const TPM2B_NONCE *nonceCaller,
621 TPM2_SE sessionType,
622 const TPMT_SYM_DEF *symmetric,
623 TPMI_ALG_HASH authHash);
624
625TSS2_RC
626Esys_StartAuthSession_Finish(
627 ESYS_CONTEXT *esysContext,
628 ESYS_TR *sessionHandle);
629
630/* Table 17 - TPM2_PolicyRestart Command */
631
632TSS2_RC
633Esys_PolicyRestart(
634 ESYS_CONTEXT *esysContext,
635 ESYS_TR sessionHandle,
636 ESYS_TR shandle1,
637 ESYS_TR shandle2,
638 ESYS_TR shandle3);
639
640TSS2_RC
641Esys_PolicyRestart_Async(
642 ESYS_CONTEXT *esysContext,
643 ESYS_TR sessionHandle,
644 ESYS_TR shandle1,
645 ESYS_TR shandle2,
646 ESYS_TR shandle3);
647
648TSS2_RC
649Esys_PolicyRestart_Finish(
650 ESYS_CONTEXT *esysContext);
651
652/* Table 19 - TPM2_Create Command */
653
654TSS2_RC
655Esys_Create(
656 ESYS_CONTEXT *esysContext,
657 ESYS_TR parentHandle,
658 ESYS_TR shandle1,
659 ESYS_TR shandle2,
660 ESYS_TR shandle3,
661 const TPM2B_SENSITIVE_CREATE *inSensitive,
662 const TPM2B_PUBLIC *inPublic,
663 const TPM2B_DATA *outsideInfo,
664 const TPML_PCR_SELECTION *creationPCR,
665 TPM2B_PRIVATE **outPrivate,
666 TPM2B_PUBLIC **outPublic,
667 TPM2B_CREATION_DATA **creationData,
668 TPM2B_DIGEST **creationHash,
669 TPMT_TK_CREATION **creationTicket);
670
671TSS2_RC
672Esys_Create_Async(
673 ESYS_CONTEXT *esysContext,
674 ESYS_TR parentHandle,
675 ESYS_TR shandle1,
676 ESYS_TR shandle2,
677 ESYS_TR shandle3,
678 const TPM2B_SENSITIVE_CREATE *inSensitive,
679 const TPM2B_PUBLIC *inPublic,
680 const TPM2B_DATA *outsideInfo,
681 const TPML_PCR_SELECTION *creationPCR);
682
683TSS2_RC
684Esys_Create_Finish(
685 ESYS_CONTEXT *esysContext,
686 TPM2B_PRIVATE **outPrivate,
687 TPM2B_PUBLIC **outPublic,
688 TPM2B_CREATION_DATA **creationData,
689 TPM2B_DIGEST **creationHash,
690 TPMT_TK_CREATION **creationTicket);
691
692/* Table 21 - TPM2_Load Command */
693
694TSS2_RC
695Esys_Load(
696 ESYS_CONTEXT *esysContext,
697 ESYS_TR parentHandle,
698 ESYS_TR shandle1,
699 ESYS_TR shandle2,
700 ESYS_TR shandle3,
701 const TPM2B_PRIVATE *inPrivate,
702 const TPM2B_PUBLIC *inPublic,
703 ESYS_TR *objectHandle);
704
705TSS2_RC
706Esys_Load_Async(
707 ESYS_CONTEXT *esysContext,
708 ESYS_TR parentHandle,
709 ESYS_TR shandle1,
710 ESYS_TR shandle2,
711 ESYS_TR shandle3,
712 const TPM2B_PRIVATE *inPrivate,
713 const TPM2B_PUBLIC *inPublic);
714
715TSS2_RC
716Esys_Load_Finish(
717 ESYS_CONTEXT *esysContext,
718 ESYS_TR *objectHandle);
719
720/* Table 23 - TPM2_LoadExternal Command */
721
722TSS2_RC
723Esys_LoadExternal(
724 ESYS_CONTEXT *esysContext,
725 ESYS_TR shandle1,
726 ESYS_TR shandle2,
727 ESYS_TR shandle3,
728 const TPM2B_SENSITIVE *inPrivate,
729 const TPM2B_PUBLIC *inPublic,
730 ESYS_TR hierarchy,
731 ESYS_TR *objectHandle);
732
733TSS2_RC
734Esys_LoadExternal_Async(
735 ESYS_CONTEXT *esysContext,
736 ESYS_TR shandle1,
737 ESYS_TR shandle2,
738 ESYS_TR shandle3,
739 const TPM2B_SENSITIVE *inPrivate,
740 const TPM2B_PUBLIC *inPublic,
741 ESYS_TR hierarchy);
742
743TSS2_RC
744Esys_LoadExternal_Finish(
745 ESYS_CONTEXT *esysContext,
746 ESYS_TR *objectHandle);
747
748/* Table 25 - TPM2_ReadPublic Command */
749
750TSS2_RC
751Esys_ReadPublic(
752 ESYS_CONTEXT *esysContext,
753 ESYS_TR objectHandle,
754 ESYS_TR shandle1,
755 ESYS_TR shandle2,
756 ESYS_TR shandle3,
757 TPM2B_PUBLIC **outPublic,
758 TPM2B_NAME **name,
759 TPM2B_NAME **qualifiedName);
760
761TSS2_RC
762Esys_ReadPublic_Async(
763 ESYS_CONTEXT *esysContext,
764 ESYS_TR objectHandle,
765 ESYS_TR shandle1,
766 ESYS_TR shandle2,
767 ESYS_TR shandle3);
768
769TSS2_RC
770Esys_ReadPublic_Finish(
771 ESYS_CONTEXT *esysContext,
772 TPM2B_PUBLIC **outPublic,
773 TPM2B_NAME **name,
774 TPM2B_NAME **qualifiedName);
775
776/* Table 27 - TPM2_ActivateCredential Command */
777
778TSS2_RC
779Esys_ActivateCredential(
780 ESYS_CONTEXT *esysContext,
781 ESYS_TR activateHandle,
782 ESYS_TR keyHandle,
783 ESYS_TR shandle1,
784 ESYS_TR shandle2,
785 ESYS_TR shandle3,
786 const TPM2B_ID_OBJECT *credentialBlob,
787 const TPM2B_ENCRYPTED_SECRET *secret,
788 TPM2B_DIGEST **certInfo);
789
790TSS2_RC
791Esys_ActivateCredential_Async(
792 ESYS_CONTEXT *esysContext,
793 ESYS_TR activateHandle,
794 ESYS_TR keyHandle,
795 ESYS_TR shandle1,
796 ESYS_TR shandle2,
797 ESYS_TR shandle3,
798 const TPM2B_ID_OBJECT *credentialBlob,
799 const TPM2B_ENCRYPTED_SECRET *secret);
800
801TSS2_RC
802Esys_ActivateCredential_Finish(
803 ESYS_CONTEXT *esysContext,
804 TPM2B_DIGEST **certInfo);
805
806TSS2_RC
807Esys_ACT_SetTimeout(
808 ESYS_CONTEXT *esysContext,
809 ESYS_TR actHandle,
810 ESYS_TR shandle1,
811 ESYS_TR shandle2,
812 ESYS_TR shandle3,
813 UINT32 startTimeout);
814
815TSS2_RC
816Esys_ACT_SetTimeout_Async(
817 ESYS_CONTEXT *esysContext,
818 ESYS_TR actHandle,
819 ESYS_TR shandle1,
820 ESYS_TR shandle2,
821 ESYS_TR shandle3,
822 UINT32 startTimeout);
823
824TSS2_RC
825Esys_ACT_SetTimeout_Finish(
826 ESYS_CONTEXT *esysContext);
827
828TSS2_RC
829Esys_AC_GetCapability_Async(
830 ESYS_CONTEXT *esysContext,
831 ESYS_TR optionalSession1,
832 ESYS_TR optionalSession2,
833 ESYS_TR optionalSession3,
834 ESYS_TR ac,
835 TPM_AT capability,
836 UINT32 count);
837
838TSS2_RC
839Esys_AC_GetCapability_Finish(
840 ESYS_CONTEXT *esysContext,
841 TPMI_YES_NO *moreData,
842 TPML_AC_CAPABILITIES **capabilityData);
843
844TSS2_RC
845Esys_AC_GetCapability(
846 ESYS_CONTEXT *esysContext,
847 ESYS_TR optionalSession1,
848 ESYS_TR optionalSession2,
849 ESYS_TR optionalSession3,
850 ESYS_TR ac,
851 TPM_AT capability,
852 UINT32 count,
853 TPMI_YES_NO *moreData,
854 TPML_AC_CAPABILITIES **capabilityData);
855
856TSS2_RC
857Esys_AC_Send_Async(
858 ESYS_CONTEXT *esysContext,
859 ESYS_TR sendObject,
860 ESYS_TR nvAuthHandle,
861 ESYS_TR optionalSession1,
862 ESYS_TR optionalSession2,
863 ESYS_TR optionalSession3,
864 ESYS_TR ac,
865 TPM2B_MAX_BUFFER *acDataIn);
866
867TSS2_RC
868Esys_AC_Send_Finish(
869 ESYS_CONTEXT *esysContext,
870 TPMS_AC_OUTPUT **acDataOut);
871
872TSS2_RC
873Esys_AC_Send(
874 ESYS_CONTEXT *esysContext,
875 ESYS_TR sendObject,
876 ESYS_TR nvAuthHandle,
877 ESYS_TR optionalSession1,
878 ESYS_TR optionalSession2,
879 ESYS_TR optionalSession3,
880 ESYS_TR ac,
881 TPM2B_MAX_BUFFER *acDataIn,
882 TPMS_AC_OUTPUT **acDataOut);
883
884TSS2_RC
885Esys_Policy_AC_SendSelect_Async(
886 ESYS_CONTEXT *esysContext,
887 ESYS_TR policySession1,
888 ESYS_TR optionalSession2,
889 ESYS_TR optionalSession3,
890 TPM2B_NAME *objectName,
891 TPM2B_NAME *authHandleName,
892 TPM2B_NAME *acName,
893 const TPMI_YES_NO includeObject);
894
895TSS2_RC
896Esys_Policy_AC_SendSelect_Finish(
897 ESYS_CONTEXT *esysContext);
898
899TSS2_RC
900Esys_Policy_AC_SendSelect(
901 ESYS_CONTEXT *esysContext,
902 ESYS_TR policySession1,
903 ESYS_TR optionalSession2,
904 ESYS_TR optionalSession3,
905 TPM2B_NAME *objectName,
906 TPM2B_NAME *authHandleName,
907 TPM2B_NAME *acName,
908 TPMI_YES_NO includeObject);
909
910/* Table 29 - TPM2_MakeCredential Command */
911
912TSS2_RC
913Esys_MakeCredential(
914 ESYS_CONTEXT *esysContext,
915 ESYS_TR handle,
916 ESYS_TR shandle1,
917 ESYS_TR shandle2,
918 ESYS_TR shandle3,
919 const TPM2B_DIGEST *credential,
920 const TPM2B_NAME *objectName,
921 TPM2B_ID_OBJECT **credentialBlob,
922 TPM2B_ENCRYPTED_SECRET **secret);
923
924TSS2_RC
925Esys_MakeCredential_Async(
926 ESYS_CONTEXT *esysContext,
927 ESYS_TR handle,
928 ESYS_TR shandle1,
929 ESYS_TR shandle2,
930 ESYS_TR shandle3,
931 const TPM2B_DIGEST *credential,
932 const TPM2B_NAME *objectName);
933
934TSS2_RC
935Esys_MakeCredential_Finish(
936 ESYS_CONTEXT *esysContext,
937 TPM2B_ID_OBJECT **credentialBlob,
938 TPM2B_ENCRYPTED_SECRET **secret);
939
940/* Table 31 - TPM2_Unseal Command */
941
942TSS2_RC
943Esys_Unseal(
944 ESYS_CONTEXT *esysContext,
945 ESYS_TR itemHandle,
946 ESYS_TR shandle1,
947 ESYS_TR shandle2,
948 ESYS_TR shandle3,
949 TPM2B_SENSITIVE_DATA **outData);
950
951TSS2_RC
952Esys_Unseal_Async(
953 ESYS_CONTEXT *esysContext,
954 ESYS_TR itemHandle,
955 ESYS_TR shandle1,
956 ESYS_TR shandle2,
957 ESYS_TR shandle3);
958
959TSS2_RC
960Esys_Unseal_Finish(
961 ESYS_CONTEXT *esysContext,
962 TPM2B_SENSITIVE_DATA **outData);
963
964/* Table 33 - TPM2_ObjectChangeAuth Command */
965
966TSS2_RC
967Esys_ObjectChangeAuth(
968 ESYS_CONTEXT *esysContext,
969 ESYS_TR objectHandle,
970 ESYS_TR parentHandle,
971 ESYS_TR shandle1,
972 ESYS_TR shandle2,
973 ESYS_TR shandle3,
974 const TPM2B_AUTH *newAuth,
975 TPM2B_PRIVATE **outPrivate);
976
977TSS2_RC
978Esys_ObjectChangeAuth_Async(
979 ESYS_CONTEXT *esysContext,
980 ESYS_TR objectHandle,
981 ESYS_TR parentHandle,
982 ESYS_TR shandle1,
983 ESYS_TR shandle2,
984 ESYS_TR shandle3,
985 const TPM2B_AUTH *newAuth);
986
987TSS2_RC
988Esys_ObjectChangeAuth_Finish(
989 ESYS_CONTEXT *esysContext,
990 TPM2B_PRIVATE **outPrivate);
991
992/* Table 35 - TPM2_CreateLoaded Command */
993
994TSS2_RC
995Esys_CreateLoaded(
996 ESYS_CONTEXT *esysContext,
997 ESYS_TR parentHandle,
998 ESYS_TR shandle1,
999 ESYS_TR shandle2,
1000 ESYS_TR shandle3,
1001 const TPM2B_SENSITIVE_CREATE *inSensitive,
1002 const TPM2B_TEMPLATE *inPublic,
1003 ESYS_TR *objectHandle,
1004 TPM2B_PRIVATE **outPrivate,
1005 TPM2B_PUBLIC **outPublic);
1006
1007TSS2_RC
1008Esys_CreateLoaded_Async(
1009 ESYS_CONTEXT *esysContext,
1010 ESYS_TR parentHandle,
1011 ESYS_TR shandle1,
1012 ESYS_TR shandle2,
1013 ESYS_TR shandle3,
1014 const TPM2B_SENSITIVE_CREATE *inSensitive,
1015 const TPM2B_TEMPLATE *inPublic);
1016
1017TSS2_RC
1018Esys_CreateLoaded_Finish(
1019 ESYS_CONTEXT *esysContext,
1020 ESYS_TR *objectHandle,
1021 TPM2B_PRIVATE **outPrivate,
1022 TPM2B_PUBLIC **outPublic);
1023
1024/* Table 37 - TPM2_Duplicate Command */
1025
1026TSS2_RC
1027Esys_Duplicate(
1028 ESYS_CONTEXT *esysContext,
1029 ESYS_TR objectHandle,
1030 ESYS_TR newParentHandle,
1031 ESYS_TR shandle1,
1032 ESYS_TR shandle2,
1033 ESYS_TR shandle3,
1034 const TPM2B_DATA *encryptionKeyIn,
1035 const TPMT_SYM_DEF_OBJECT *symmetricAlg,
1036 TPM2B_DATA **encryptionKeyOut,
1037 TPM2B_PRIVATE **duplicate,
1038 TPM2B_ENCRYPTED_SECRET **outSymSeed);
1039
1040TSS2_RC
1041Esys_Duplicate_Async(
1042 ESYS_CONTEXT *esysContext,
1043 ESYS_TR objectHandle,
1044 ESYS_TR newParentHandle,
1045 ESYS_TR shandle1,
1046 ESYS_TR shandle2,
1047 ESYS_TR shandle3,
1048 const TPM2B_DATA *encryptionKeyIn,
1049 const TPMT_SYM_DEF_OBJECT *symmetricAlg);
1050
1051TSS2_RC
1052Esys_Duplicate_Finish(
1053 ESYS_CONTEXT *esysContext,
1054 TPM2B_DATA **encryptionKeyOut,
1055 TPM2B_PRIVATE **duplicate,
1056 TPM2B_ENCRYPTED_SECRET **outSymSeed);
1057
1058/* Table 39 - TPM2_Rewrap Command */
1059
1060TSS2_RC
1061Esys_Rewrap(
1062 ESYS_CONTEXT *esysContext,
1063 ESYS_TR oldParent,
1064 ESYS_TR newParent,
1065 ESYS_TR shandle1,
1066 ESYS_TR shandle2,
1067 ESYS_TR shandle3,
1068 const TPM2B_PRIVATE *inDuplicate,
1069 const TPM2B_NAME *name,
1070 const TPM2B_ENCRYPTED_SECRET *inSymSeed,
1071 TPM2B_PRIVATE **outDuplicate,
1072 TPM2B_ENCRYPTED_SECRET **outSymSeed);
1073
1074TSS2_RC
1075Esys_Rewrap_Async(
1076 ESYS_CONTEXT *esysContext,
1077 ESYS_TR oldParent,
1078 ESYS_TR newParent,
1079 ESYS_TR shandle1,
1080 ESYS_TR shandle2,
1081 ESYS_TR shandle3,
1082 const TPM2B_PRIVATE *inDuplicate,
1083 const TPM2B_NAME *name,
1084 const TPM2B_ENCRYPTED_SECRET *inSymSeed);
1085
1086TSS2_RC
1087Esys_Rewrap_Finish(
1088 ESYS_CONTEXT *esysContext,
1089 TPM2B_PRIVATE **outDuplicate,
1090 TPM2B_ENCRYPTED_SECRET **outSymSeed);
1091
1092/* Table 41 - TPM2_Import Command */
1093
1094TSS2_RC
1095Esys_Import(
1096 ESYS_CONTEXT *esysContext,
1097 ESYS_TR parentHandle,
1098 ESYS_TR shandle1,
1099 ESYS_TR shandle2,
1100 ESYS_TR shandle3,
1101 const TPM2B_DATA *encryptionKey,
1102 const TPM2B_PUBLIC *objectPublic,
1103 const TPM2B_PRIVATE *duplicate,
1104 const TPM2B_ENCRYPTED_SECRET *inSymSeed,
1105 const TPMT_SYM_DEF_OBJECT *symmetricAlg,
1106 TPM2B_PRIVATE **outPrivate);
1107
1108TSS2_RC
1109Esys_Import_Async(
1110 ESYS_CONTEXT *esysContext,
1111 ESYS_TR parentHandle,
1112 ESYS_TR shandle1,
1113 ESYS_TR shandle2,
1114 ESYS_TR shandle3,
1115 const TPM2B_DATA *encryptionKey,
1116 const TPM2B_PUBLIC *objectPublic,
1117 const TPM2B_PRIVATE *duplicate,
1118 const TPM2B_ENCRYPTED_SECRET *inSymSeed,
1119 const TPMT_SYM_DEF_OBJECT *symmetricAlg);
1120
1121TSS2_RC
1122Esys_Import_Finish(
1123 ESYS_CONTEXT *esysContext,
1124 TPM2B_PRIVATE **outPrivate);
1125
1126/* Table 45 - TPM2_RSA_Encrypt Command */
1127
1128TSS2_RC
1129Esys_RSA_Encrypt(
1130 ESYS_CONTEXT *esysContext,
1131 ESYS_TR keyHandle,
1132 ESYS_TR shandle1,
1133 ESYS_TR shandle2,
1134 ESYS_TR shandle3,
1135 const TPM2B_PUBLIC_KEY_RSA *message,
1136 const TPMT_RSA_DECRYPT *inScheme,
1137 const TPM2B_DATA *label,
1138 TPM2B_PUBLIC_KEY_RSA **outData);
1139
1140TSS2_RC
1141Esys_RSA_Encrypt_Async(
1142 ESYS_CONTEXT *esysContext,
1143 ESYS_TR keyHandle,
1144 ESYS_TR shandle1,
1145 ESYS_TR shandle2,
1146 ESYS_TR shandle3,
1147 const TPM2B_PUBLIC_KEY_RSA *message,
1148 const TPMT_RSA_DECRYPT *inScheme,
1149 const TPM2B_DATA *label);
1150
1151TSS2_RC
1152Esys_RSA_Encrypt_Finish(
1153 ESYS_CONTEXT *esysContext,
1154 TPM2B_PUBLIC_KEY_RSA **outData);
1155
1156/* Table 47 - TPM2_RSA_Decrypt Command */
1157
1158TSS2_RC
1159Esys_RSA_Decrypt(
1160 ESYS_CONTEXT *esysContext,
1161 ESYS_TR keyHandle,
1162 ESYS_TR shandle1,
1163 ESYS_TR shandle2,
1164 ESYS_TR shandle3,
1165 const TPM2B_PUBLIC_KEY_RSA *cipherText,
1166 const TPMT_RSA_DECRYPT *inScheme,
1167 const TPM2B_DATA *label,
1168 TPM2B_PUBLIC_KEY_RSA **message);
1169
1170TSS2_RC
1171Esys_RSA_Decrypt_Async(
1172 ESYS_CONTEXT *esysContext,
1173 ESYS_TR keyHandle,
1174 ESYS_TR shandle1,
1175 ESYS_TR shandle2,
1176 ESYS_TR shandle3,
1177 const TPM2B_PUBLIC_KEY_RSA *cipherText,
1178 const TPMT_RSA_DECRYPT *inScheme,
1179 const TPM2B_DATA *label);
1180
1181TSS2_RC
1182Esys_RSA_Decrypt_Finish(
1183 ESYS_CONTEXT *esysContext,
1184 TPM2B_PUBLIC_KEY_RSA **message);
1185
1186/* Table 49 - TPM2_ECDH_KeyGen Command */
1187
1188TSS2_RC
1189Esys_ECDH_KeyGen(
1190 ESYS_CONTEXT *esysContext,
1191 ESYS_TR keyHandle,
1192 ESYS_TR shandle1,
1193 ESYS_TR shandle2,
1194 ESYS_TR shandle3,
1195 TPM2B_ECC_POINT **zPoint,
1196 TPM2B_ECC_POINT **pubPoint);
1197
1198TSS2_RC
1199Esys_ECDH_KeyGen_Async(
1200 ESYS_CONTEXT *esysContext,
1201 ESYS_TR keyHandle,
1202 ESYS_TR shandle1,
1203 ESYS_TR shandle2,
1204 ESYS_TR shandle3);
1205
1206TSS2_RC
1207Esys_ECDH_KeyGen_Finish(
1208 ESYS_CONTEXT *esysContext,
1209 TPM2B_ECC_POINT **zPoint,
1210 TPM2B_ECC_POINT **pubPoint);
1211
1212/* Table 51 - TPM2_ECDH_ZGen Command */
1213
1214TSS2_RC
1215Esys_ECDH_ZGen(
1216 ESYS_CONTEXT *esysContext,
1217 ESYS_TR keyHandle,
1218 ESYS_TR shandle1,
1219 ESYS_TR shandle2,
1220 ESYS_TR shandle3,
1221 const TPM2B_ECC_POINT *inPoint,
1222 TPM2B_ECC_POINT **outPoint);
1223
1224TSS2_RC
1225Esys_ECDH_ZGen_Async(
1226 ESYS_CONTEXT *esysContext,
1227 ESYS_TR keyHandle,
1228 ESYS_TR shandle1,
1229 ESYS_TR shandle2,
1230 ESYS_TR shandle3,
1231 const TPM2B_ECC_POINT *inPoint);
1232
1233TSS2_RC
1234Esys_ECDH_ZGen_Finish(
1235 ESYS_CONTEXT *esysContext,
1236 TPM2B_ECC_POINT **outPoint);
1237
1238/* Table 53 - TPM2_ECC_Parameters Command */
1239
1240TSS2_RC
1241Esys_ECC_Parameters(
1242 ESYS_CONTEXT *esysContext,
1243 ESYS_TR shandle1,
1244 ESYS_TR shandle2,
1245 ESYS_TR shandle3,
1246 TPMI_ECC_CURVE curveID,
1247 TPMS_ALGORITHM_DETAIL_ECC **parameters);
1248
1249TSS2_RC
1250Esys_ECC_Parameters_Async(
1251 ESYS_CONTEXT *esysContext,
1252 ESYS_TR shandle1,
1253 ESYS_TR shandle2,
1254 ESYS_TR shandle3,
1255 TPMI_ECC_CURVE curveID);
1256
1257TSS2_RC
1258Esys_ECC_Parameters_Finish(
1259 ESYS_CONTEXT *esysContext,
1260 TPMS_ALGORITHM_DETAIL_ECC **parameters);
1261
1262/* Table 55 - TPM2_ZGen_2Phase Command */
1263
1264TSS2_RC
1265Esys_ZGen_2Phase(
1266 ESYS_CONTEXT *esysContext,
1267 ESYS_TR keyA,
1268 ESYS_TR shandle1,
1269 ESYS_TR shandle2,
1270 ESYS_TR shandle3,
1271 const TPM2B_ECC_POINT *inQsB,
1272 const TPM2B_ECC_POINT *inQeB,
1273 TPMI_ECC_KEY_EXCHANGE inScheme,
1274 UINT16 counter,
1275 TPM2B_ECC_POINT **outZ1,
1276 TPM2B_ECC_POINT **outZ2);
1277
1278TSS2_RC
1279Esys_ZGen_2Phase_Async(
1280 ESYS_CONTEXT *esysContext,
1281 ESYS_TR keyA,
1282 ESYS_TR shandle1,
1283 ESYS_TR shandle2,
1284 ESYS_TR shandle3,
1285 const TPM2B_ECC_POINT *inQsB,
1286 const TPM2B_ECC_POINT *inQeB,
1287 TPMI_ECC_KEY_EXCHANGE inScheme,
1288 UINT16 counter);
1289
1290TSS2_RC
1291Esys_ZGen_2Phase_Finish(
1292 ESYS_CONTEXT *esysContext,
1293 TPM2B_ECC_POINT **outZ1,
1294 TPM2B_ECC_POINT **outZ2);
1295
1296/* Table 58 - TPM2_EncryptDecrypt Command */
1297
1298TSS2_RC
1299Esys_EncryptDecrypt(
1300 ESYS_CONTEXT *esysContext,
1301 ESYS_TR keyHandle,
1302 ESYS_TR shandle1,
1303 ESYS_TR shandle2,
1304 ESYS_TR shandle3,
1305 TPMI_YES_NO decrypt,
1306 TPMI_ALG_CIPHER_MODE mode,
1307 const TPM2B_IV *ivIn,
1308 const TPM2B_MAX_BUFFER *inData,
1309 TPM2B_MAX_BUFFER **outData,
1310 TPM2B_IV **ivOut);
1311
1312TSS2_RC
1313Esys_EncryptDecrypt_Async(
1314 ESYS_CONTEXT *esysContext,
1315 ESYS_TR keyHandle,
1316 ESYS_TR shandle1,
1317 ESYS_TR shandle2,
1318 ESYS_TR shandle3,
1319 TPMI_YES_NO decrypt,
1320 TPMI_ALG_CIPHER_MODE mode,
1321 const TPM2B_IV *ivIn,
1322 const TPM2B_MAX_BUFFER *inData);
1323
1324TSS2_RC
1325Esys_EncryptDecrypt_Finish(
1326 ESYS_CONTEXT *esysContext,
1327 TPM2B_MAX_BUFFER **outData,
1328 TPM2B_IV **ivOut);
1329
1330/* Table 60 - TPM2_EncryptDecrypt2 Command */
1331
1332TSS2_RC
1333Esys_EncryptDecrypt2(
1334 ESYS_CONTEXT *esysContext,
1335 ESYS_TR keyHandle,
1336 ESYS_TR shandle1,
1337 ESYS_TR shandle2,
1338 ESYS_TR shandle3,
1339 const TPM2B_MAX_BUFFER *inData,
1340 TPMI_YES_NO decrypt,
1341 TPMI_ALG_CIPHER_MODE mode,
1342 const TPM2B_IV *ivIn,
1343 TPM2B_MAX_BUFFER **outData,
1344 TPM2B_IV **ivOut);
1345
1346TSS2_RC
1347Esys_EncryptDecrypt2_Async(
1348 ESYS_CONTEXT *esysContext,
1349 ESYS_TR keyHandle,
1350 ESYS_TR shandle1,
1351 ESYS_TR shandle2,
1352 ESYS_TR shandle3,
1353 const TPM2B_MAX_BUFFER *inData,
1354 TPMI_YES_NO decrypt,
1355 TPMI_ALG_CIPHER_MODE mode,
1356 const TPM2B_IV *ivIn);
1357
1358TSS2_RC
1359Esys_EncryptDecrypt2_Finish(
1360 ESYS_CONTEXT *esysContext,
1361 TPM2B_MAX_BUFFER **outData,
1362 TPM2B_IV **ivOut);
1363
1364/* Table 62 - TPM2_Hash Command */
1365
1366TSS2_RC
1367Esys_Hash(
1368 ESYS_CONTEXT *esysContext,
1369 ESYS_TR shandle1,
1370 ESYS_TR shandle2,
1371 ESYS_TR shandle3,
1372 const TPM2B_MAX_BUFFER *data,
1373 TPMI_ALG_HASH hashAlg,
1374 ESYS_TR hierarchy,
1375 TPM2B_DIGEST **outHash,
1376 TPMT_TK_HASHCHECK **validation);
1377
1378TSS2_RC
1379Esys_Hash_Async(
1380 ESYS_CONTEXT *esysContext,
1381 ESYS_TR shandle1,
1382 ESYS_TR shandle2,
1383 ESYS_TR shandle3,
1384 const TPM2B_MAX_BUFFER *data,
1385 TPMI_ALG_HASH hashAlg,
1386 ESYS_TR hierarchy);
1387
1388TSS2_RC
1389Esys_Hash_Finish(
1390 ESYS_CONTEXT *esysContext,
1391 TPM2B_DIGEST **outHash,
1392 TPMT_TK_HASHCHECK **validation);
1393
1394/* Table 64 - TPM2_HMAC Command */
1395
1396TSS2_RC
1397Esys_HMAC(
1398 ESYS_CONTEXT *esysContext,
1399 ESYS_TR handle,
1400 ESYS_TR shandle1,
1401 ESYS_TR shandle2,
1402 ESYS_TR shandle3,
1403 const TPM2B_MAX_BUFFER *buffer,
1404 TPMI_ALG_HASH hashAlg,
1405 TPM2B_DIGEST **outHMAC);
1406
1407TSS2_RC
1408Esys_HMAC_Async(
1409 ESYS_CONTEXT *esysContext,
1410 ESYS_TR handle,
1411 ESYS_TR shandle1,
1412 ESYS_TR shandle2,
1413 ESYS_TR shandle3,
1414 const TPM2B_MAX_BUFFER *buffer,
1415 TPMI_ALG_HASH hashAlg);
1416
1417TSS2_RC
1418Esys_HMAC_Finish(
1419 ESYS_CONTEXT *esysContext,
1420 TPM2B_DIGEST **outHMAC);
1421
1422TSS2_RC
1423Esys_MAC_Async(
1424 ESYS_CONTEXT *esysContext,
1425 ESYS_TR handle,
1426 ESYS_TR handleSession1,
1427 ESYS_TR optionalSession2,
1428 ESYS_TR optionalSession3,
1429 const TPM2B_MAX_BUFFER *buffer,
1430 TPMI_ALG_MAC_SCHEME inScheme);
1431
1432TSS2_RC
1433Esys_MAC_Finish(
1434 ESYS_CONTEXT *esysContext,
1435 TPM2B_DIGEST **outMAC);
1436
1437TSS2_RC
1438Esys_MAC(
1439 ESYS_CONTEXT *esysContext,
1440 ESYS_TR handle,
1441 ESYS_TR handleSession1,
1442 ESYS_TR optionalSession2,
1443 ESYS_TR optionalSession3,
1444 const TPM2B_MAX_BUFFER *buffer,
1445 TPMI_ALG_MAC_SCHEME inScheme,
1446 TPM2B_DIGEST **outMAC);
1447
1448/* Table 66 - TPM2_GetRandom Command */
1449
1450TSS2_RC
1451Esys_GetRandom(
1452 ESYS_CONTEXT *esysContext,
1453 ESYS_TR shandle1,
1454 ESYS_TR shandle2,
1455 ESYS_TR shandle3,
1456 UINT16 bytesRequested,
1457 TPM2B_DIGEST **randomBytes);
1458
1459TSS2_RC
1460Esys_GetRandom_Async(
1461 ESYS_CONTEXT *esysContext,
1462 ESYS_TR shandle1,
1463 ESYS_TR shandle2,
1464 ESYS_TR shandle3,
1465 UINT16 bytesRequested);
1466
1467TSS2_RC
1468Esys_GetRandom_Finish(
1469 ESYS_CONTEXT *esysContext,
1470 TPM2B_DIGEST **randomBytes);
1471
1472/* Table 68 - TPM2_StirRandom Command */
1473
1474TSS2_RC
1475Esys_StirRandom(
1476 ESYS_CONTEXT *esysContext,
1477 ESYS_TR shandle1,
1478 ESYS_TR shandle2,
1479 ESYS_TR shandle3,
1480 const TPM2B_SENSITIVE_DATA *inData);
1481
1482TSS2_RC
1483Esys_StirRandom_Async(
1484 ESYS_CONTEXT *esysContext,
1485 ESYS_TR shandle1,
1486 ESYS_TR shandle2,
1487 ESYS_TR shandle3,
1488 const TPM2B_SENSITIVE_DATA *inData);
1489
1490TSS2_RC
1491Esys_StirRandom_Finish(
1492 ESYS_CONTEXT *esysContext);
1493
1494/* Table 71 - TPM2_HMAC_Start Command */
1495
1496TSS2_RC
1497Esys_HMAC_Start(
1498 ESYS_CONTEXT *esysContext,
1499 ESYS_TR handle,
1500 ESYS_TR shandle1,
1501 ESYS_TR shandle2,
1502 ESYS_TR shandle3,
1503 const TPM2B_AUTH *auth,
1504 TPMI_ALG_HASH hashAlg,
1505 ESYS_TR *sequenceHandle);
1506
1507TSS2_RC
1508Esys_HMAC_Start_Async(
1509 ESYS_CONTEXT *esysContext,
1510 ESYS_TR handle,
1511 ESYS_TR shandle1,
1512 ESYS_TR shandle2,
1513 ESYS_TR shandle3,
1514 const TPM2B_AUTH *auth,
1515 TPMI_ALG_HASH hashAlg);
1516
1517TSS2_RC
1518Esys_HMAC_Start_Finish(
1519 ESYS_CONTEXT *esysContext,
1520 ESYS_TR *sequenceHandle);
1521
1522TSS2_RC
1523Esys_MAC_Start(
1524 ESYS_CONTEXT *esysContext,
1525 ESYS_TR handle,
1526 ESYS_TR handleSession1,
1527 ESYS_TR optionalSession2,
1528 ESYS_TR optionalSession3,
1529 const TPM2B_AUTH *auth,
1530 TPMI_ALG_MAC_SCHEME inScheme,
1531 ESYS_TR *sequenceHandle);
1532
1533TSS2_RC
1534Esys_MAC_Start_Async(
1535 ESYS_CONTEXT *esysContext,
1536 ESYS_TR handle,
1537 ESYS_TR handleSession1,
1538 ESYS_TR optionalSession2,
1539 ESYS_TR optionalSession3,
1540 const TPM2B_AUTH *auth,
1541 TPMI_ALG_MAC_SCHEME inScheme);
1542
1543TSS2_RC
1544Esys_MAC_Start_Finish(
1545 ESYS_CONTEXT *esysContext,
1546 ESYS_TR *sequenceHandle);
1547
1548/* Table 73 - TPM2_HashSequenceStart Command */
1549
1550TSS2_RC
1551Esys_HashSequenceStart(
1552 ESYS_CONTEXT *esysContext,
1553 ESYS_TR shandle1,
1554 ESYS_TR shandle2,
1555 ESYS_TR shandle3,
1556 const TPM2B_AUTH *auth,
1557 TPMI_ALG_HASH hashAlg,
1558 ESYS_TR *sequenceHandle);
1559
1560TSS2_RC
1561Esys_HashSequenceStart_Async(
1562 ESYS_CONTEXT *esysContext,
1563 ESYS_TR shandle1,
1564 ESYS_TR shandle2,
1565 ESYS_TR shandle3,
1566 const TPM2B_AUTH *auth,
1567 TPMI_ALG_HASH hashAlg);
1568
1569TSS2_RC
1570Esys_HashSequenceStart_Finish(
1571 ESYS_CONTEXT *esysContext,
1572 ESYS_TR *sequenceHandle);
1573
1574/* Table 75 - TPM2_SequenceUpdate Command */
1575
1576TSS2_RC
1577Esys_SequenceUpdate(
1578 ESYS_CONTEXT *esysContext,
1579 ESYS_TR sequenceHandle,
1580 ESYS_TR shandle1,
1581 ESYS_TR shandle2,
1582 ESYS_TR shandle3,
1583 const TPM2B_MAX_BUFFER *buffer);
1584
1585TSS2_RC
1586Esys_SequenceUpdate_Async(
1587 ESYS_CONTEXT *esysContext,
1588 ESYS_TR sequenceHandle,
1589 ESYS_TR shandle1,
1590 ESYS_TR shandle2,
1591 ESYS_TR shandle3,
1592 const TPM2B_MAX_BUFFER *buffer);
1593
1594TSS2_RC
1595Esys_SequenceUpdate_Finish(
1596 ESYS_CONTEXT *esysContext);
1597
1598/* Table 77 - TPM2_SequenceComplete Command */
1599
1600TSS2_RC
1601Esys_SequenceComplete(
1602 ESYS_CONTEXT *esysContext,
1603 ESYS_TR sequenceHandle,
1604 ESYS_TR shandle1,
1605 ESYS_TR shandle2,
1606 ESYS_TR shandle3,
1607 const TPM2B_MAX_BUFFER *buffer,
1608 ESYS_TR hierarchy,
1609 TPM2B_DIGEST **result,
1610 TPMT_TK_HASHCHECK **validation);
1611
1612TSS2_RC
1613Esys_SequenceComplete_Async(
1614 ESYS_CONTEXT *esysContext,
1615 ESYS_TR sequenceHandle,
1616 ESYS_TR shandle1,
1617 ESYS_TR shandle2,
1618 ESYS_TR shandle3,
1619 const TPM2B_MAX_BUFFER *buffer,
1620 ESYS_TR hierarchy);
1621
1622TSS2_RC
1623Esys_SequenceComplete_Finish(
1624 ESYS_CONTEXT *esysContext,
1625 TPM2B_DIGEST **result,
1626 TPMT_TK_HASHCHECK **validation);
1627
1628/* Table 79 - TPM2_EventSequenceComplete Command */
1629
1630TSS2_RC
1631Esys_EventSequenceComplete(
1632 ESYS_CONTEXT *esysContext,
1633 ESYS_TR pcrHandle,
1634 ESYS_TR sequenceHandle,
1635 ESYS_TR shandle1,
1636 ESYS_TR shandle2,
1637 ESYS_TR shandle3,
1638 const TPM2B_MAX_BUFFER *buffer,
1639 TPML_DIGEST_VALUES **results);
1640
1641TSS2_RC
1642Esys_EventSequenceComplete_Async(
1643 ESYS_CONTEXT *esysContext,
1644 ESYS_TR pcrHandle,
1645 ESYS_TR sequenceHandle,
1646 ESYS_TR shandle1,
1647 ESYS_TR shandle2,
1648 ESYS_TR shandle3,
1649 const TPM2B_MAX_BUFFER *buffer);
1650
1651TSS2_RC
1652Esys_EventSequenceComplete_Finish(
1653 ESYS_CONTEXT *esysContext,
1654 TPML_DIGEST_VALUES **results);
1655
1656/* Table 81 - TPM2_Certify Command */
1657
1658TSS2_RC
1659Esys_Certify(
1660 ESYS_CONTEXT *esysContext,
1661 ESYS_TR objectHandle,
1662 ESYS_TR signHandle,
1663 ESYS_TR shandle1,
1664 ESYS_TR shandle2,
1665 ESYS_TR shandle3,
1666 const TPM2B_DATA *qualifyingData,
1667 const TPMT_SIG_SCHEME *inScheme,
1668 TPM2B_ATTEST **certifyInfo,
1669 TPMT_SIGNATURE **signature);
1670
1671TSS2_RC
1672Esys_Certify_Async(
1673 ESYS_CONTEXT *esysContext,
1674 ESYS_TR objectHandle,
1675 ESYS_TR signHandle,
1676 ESYS_TR shandle1,
1677 ESYS_TR shandle2,
1678 ESYS_TR shandle3,
1679 const TPM2B_DATA *qualifyingData,
1680 const TPMT_SIG_SCHEME *inScheme);
1681
1682TSS2_RC
1683Esys_Certify_Finish(
1684 ESYS_CONTEXT *esysContext,
1685 TPM2B_ATTEST **certifyInfo,
1686 TPMT_SIGNATURE **signature);
1687
1688/* Table 83 - TPM2_CertifyCreation Command */
1689
1690TSS2_RC
1691Esys_CertifyCreation(
1692 ESYS_CONTEXT *esysContext,
1693 ESYS_TR signHandle,
1694 ESYS_TR objectHandle,
1695 ESYS_TR shandle1,
1696 ESYS_TR shandle2,
1697 ESYS_TR shandle3,
1698 const TPM2B_DATA *qualifyingData,
1699 const TPM2B_DIGEST *creationHash,
1700 const TPMT_SIG_SCHEME *inScheme,
1701 const TPMT_TK_CREATION *creationTicket,
1702 TPM2B_ATTEST **certifyInfo,
1703 TPMT_SIGNATURE **signature);
1704
1705TSS2_RC
1706Esys_CertifyCreation_Async(
1707 ESYS_CONTEXT *esysContext,
1708 ESYS_TR signHandle,
1709 ESYS_TR objectHandle,
1710 ESYS_TR shandle1,
1711 ESYS_TR shandle2,
1712 ESYS_TR shandle3,
1713 const TPM2B_DATA *qualifyingData,
1714 const TPM2B_DIGEST *creationHash,
1715 const TPMT_SIG_SCHEME *inScheme,
1716 const TPMT_TK_CREATION *creationTicket);
1717
1718TSS2_RC
1719Esys_CertifyCreation_Finish(
1720 ESYS_CONTEXT *esysContext,
1721 TPM2B_ATTEST **certifyInfo,
1722 TPMT_SIGNATURE **signature);
1723
1724TSS2_RC
1725Esys_CertifyX509(
1726 ESYS_CONTEXT *esysContext,
1727 ESYS_TR objectHandle,
1728 ESYS_TR signHandle,
1729 ESYS_TR shandle1,
1730 ESYS_TR shandle2,
1731 ESYS_TR shandle3,
1732 const TPM2B_DATA *reserved,
1733 const TPMT_SIG_SCHEME *inScheme,
1734 const TPM2B_MAX_BUFFER *partialCertificate,
1735 TPM2B_MAX_BUFFER **addedToCertificate,
1736 TPM2B_DIGEST **tbsDigest,
1737 TPMT_SIGNATURE **signature);
1738
1739TSS2_RC
1740Esys_CertifyX509_Async(
1741 ESYS_CONTEXT *esysContext,
1742 ESYS_TR objectHandle,
1743 ESYS_TR signHandle,
1744 ESYS_TR shandle1,
1745 ESYS_TR shandle2,
1746 ESYS_TR shandle3,
1747 const TPM2B_DATA *reserved,
1748 const TPMT_SIG_SCHEME *inScheme,
1749 const TPM2B_MAX_BUFFER *partialCertificate);
1750
1751TSS2_RC
1752Esys_CertifyX509_Finish(
1753 ESYS_CONTEXT *esysContext,
1754 TPM2B_MAX_BUFFER **addedToCertificate,
1755 TPM2B_DIGEST **tbsDigest,
1756 TPMT_SIGNATURE **signature);
1757
1758/* Table 85 - TPM2_Quote Command */
1759
1760TSS2_RC
1761Esys_Quote(
1762 ESYS_CONTEXT *esysContext,
1763 ESYS_TR signHandle,
1764 ESYS_TR shandle1,
1765 ESYS_TR shandle2,
1766 ESYS_TR shandle3,
1767 const TPM2B_DATA *qualifyingData,
1768 const TPMT_SIG_SCHEME *inScheme,
1769 const TPML_PCR_SELECTION *PCRselect,
1770 TPM2B_ATTEST **quoted,
1771 TPMT_SIGNATURE **signature);
1772
1773TSS2_RC
1774Esys_Quote_Async(
1775 ESYS_CONTEXT *esysContext,
1776 ESYS_TR signHandle,
1777 ESYS_TR shandle1,
1778 ESYS_TR shandle2,
1779 ESYS_TR shandle3,
1780 const TPM2B_DATA *qualifyingData,
1781 const TPMT_SIG_SCHEME *inScheme,
1782 const TPML_PCR_SELECTION *PCRselect);
1783
1784TSS2_RC
1785Esys_Quote_Finish(
1786 ESYS_CONTEXT *esysContext,
1787 TPM2B_ATTEST **quoted,
1788 TPMT_SIGNATURE **signature);
1789
1790/* Table 87 - TPM2_GetSessionAuditDigest Command */
1791
1792TSS2_RC
1793Esys_GetSessionAuditDigest(
1794 ESYS_CONTEXT *esysContext,
1795 ESYS_TR privacyAdminHandle,
1796 ESYS_TR signHandle,
1797 ESYS_TR sessionHandle,
1798 ESYS_TR shandle1,
1799 ESYS_TR shandle2,
1800 ESYS_TR shandle3,
1801 const TPM2B_DATA *qualifyingData,
1802 const TPMT_SIG_SCHEME *inScheme,
1803 TPM2B_ATTEST **auditInfo,
1804 TPMT_SIGNATURE **signature);
1805
1806TSS2_RC
1807Esys_GetSessionAuditDigest_Async(
1808 ESYS_CONTEXT *esysContext,
1809 ESYS_TR privacyAdminHandle,
1810 ESYS_TR signHandle,
1811 ESYS_TR sessionHandle,
1812 ESYS_TR shandle1,
1813 ESYS_TR shandle2,
1814 ESYS_TR shandle3,
1815 const TPM2B_DATA *qualifyingData,
1816 const TPMT_SIG_SCHEME *inScheme);
1817
1818TSS2_RC
1819Esys_GetSessionAuditDigest_Finish(
1820 ESYS_CONTEXT *esysContext,
1821 TPM2B_ATTEST **auditInfo,
1822 TPMT_SIGNATURE **signature);
1823
1824/* Table 89 - TPM2_GetCommandAuditDigest Command */
1825
1826TSS2_RC
1827Esys_GetCommandAuditDigest(
1828 ESYS_CONTEXT *esysContext,
1829 ESYS_TR privacyHandle,
1830 ESYS_TR signHandle,
1831 ESYS_TR shandle1,
1832 ESYS_TR shandle2,
1833 ESYS_TR shandle3,
1834 const TPM2B_DATA *qualifyingData,
1835 const TPMT_SIG_SCHEME *inScheme,
1836 TPM2B_ATTEST **auditInfo,
1837 TPMT_SIGNATURE **signature);
1838
1839TSS2_RC
1840Esys_GetCommandAuditDigest_Async(
1841 ESYS_CONTEXT *esysContext,
1842 ESYS_TR privacyHandle,
1843 ESYS_TR signHandle,
1844 ESYS_TR shandle1,
1845 ESYS_TR shandle2,
1846 ESYS_TR shandle3,
1847 const TPM2B_DATA *qualifyingData,
1848 const TPMT_SIG_SCHEME *inScheme);
1849
1850TSS2_RC
1851Esys_GetCommandAuditDigest_Finish(
1852 ESYS_CONTEXT *esysContext,
1853 TPM2B_ATTEST **auditInfo,
1854 TPMT_SIGNATURE **signature);
1855
1856/* Table 91 - TPM2_GetTime Command */
1857
1858TSS2_RC
1859Esys_GetTime(
1860 ESYS_CONTEXT *esysContext,
1861 ESYS_TR privacyAdminHandle,
1862 ESYS_TR signHandle,
1863 ESYS_TR shandle1,
1864 ESYS_TR shandle2,
1865 ESYS_TR shandle3,
1866 const TPM2B_DATA *qualifyingData,
1867 const TPMT_SIG_SCHEME *inScheme,
1868 TPM2B_ATTEST **timeInfo,
1869 TPMT_SIGNATURE **signature);
1870
1871TSS2_RC
1872Esys_GetTime_Async(
1873 ESYS_CONTEXT *esysContext,
1874 ESYS_TR privacyAdminHandle,
1875 ESYS_TR signHandle,
1876 ESYS_TR shandle1,
1877 ESYS_TR shandle2,
1878 ESYS_TR shandle3,
1879 const TPM2B_DATA *qualifyingData,
1880 const TPMT_SIG_SCHEME *inScheme);
1881
1882TSS2_RC
1883Esys_GetTime_Finish(
1884 ESYS_CONTEXT *esysContext,
1885 TPM2B_ATTEST **timeInfo,
1886 TPMT_SIGNATURE **signature);
1887
1888/* Table 93 - TPM2_Commit Command */
1889
1890TSS2_RC
1891Esys_Commit(
1892 ESYS_CONTEXT *esysContext,
1893 ESYS_TR signHandle,
1894 ESYS_TR shandle1,
1895 ESYS_TR shandle2,
1896 ESYS_TR shandle3,
1897 const TPM2B_ECC_POINT *P1,
1898 const TPM2B_SENSITIVE_DATA *s2,
1899 const TPM2B_ECC_PARAMETER *y2,
1900 TPM2B_ECC_POINT **K,
1901 TPM2B_ECC_POINT **L,
1902 TPM2B_ECC_POINT **E,
1903 UINT16 *counter);
1904
1905TSS2_RC
1906Esys_Commit_Async(
1907 ESYS_CONTEXT *esysContext,
1908 ESYS_TR signHandle,
1909 ESYS_TR shandle1,
1910 ESYS_TR shandle2,
1911 ESYS_TR shandle3,
1912 const TPM2B_ECC_POINT *P1,
1913 const TPM2B_SENSITIVE_DATA *s2,
1914 const TPM2B_ECC_PARAMETER *y2);
1915
1916TSS2_RC
1917Esys_Commit_Finish(
1918 ESYS_CONTEXT *esysContext,
1919 TPM2B_ECC_POINT **K,
1920 TPM2B_ECC_POINT **L,
1921 TPM2B_ECC_POINT **E,
1922 UINT16 *counter);
1923
1924/* Table 95 - TPM2_EC_Ephemeral Command */
1925
1926TSS2_RC
1927Esys_EC_Ephemeral(
1928 ESYS_CONTEXT *esysContext,
1929 ESYS_TR shandle1,
1930 ESYS_TR shandle2,
1931 ESYS_TR shandle3,
1932 TPMI_ECC_CURVE curveID,
1933 TPM2B_ECC_POINT **Q,
1934 UINT16 *counter);
1935
1936TSS2_RC
1937Esys_EC_Ephemeral_Async(
1938 ESYS_CONTEXT *esysContext,
1939 ESYS_TR shandle1,
1940 ESYS_TR shandle2,
1941 ESYS_TR shandle3,
1942 TPMI_ECC_CURVE curveID);
1943
1944TSS2_RC
1945Esys_EC_Ephemeral_Finish(
1946 ESYS_CONTEXT *esysContext,
1947 TPM2B_ECC_POINT **Q,
1948 UINT16 *counter);
1949
1950/* Table 97 - TPM2_VerifySignature Command */
1951
1952TSS2_RC
1953Esys_VerifySignature(
1954 ESYS_CONTEXT *esysContext,
1955 ESYS_TR keyHandle,
1956 ESYS_TR shandle1,
1957 ESYS_TR shandle2,
1958 ESYS_TR shandle3,
1959 const TPM2B_DIGEST *digest,
1960 const TPMT_SIGNATURE *signature,
1961 TPMT_TK_VERIFIED **validation);
1962
1963TSS2_RC
1964Esys_VerifySignature_Async(
1965 ESYS_CONTEXT *esysContext,
1966 ESYS_TR keyHandle,
1967 ESYS_TR shandle1,
1968 ESYS_TR shandle2,
1969 ESYS_TR shandle3,
1970 const TPM2B_DIGEST *digest,
1971 const TPMT_SIGNATURE *signature);
1972
1973TSS2_RC
1974Esys_VerifySignature_Finish(
1975 ESYS_CONTEXT *esysContext,
1976 TPMT_TK_VERIFIED **validation);
1977
1978/* Table 99 - TPM2_Sign Command */
1979
1980TSS2_RC
1981Esys_Sign(
1982 ESYS_CONTEXT *esysContext,
1983 ESYS_TR keyHandle,
1984 ESYS_TR shandle1,
1985 ESYS_TR shandle2,
1986 ESYS_TR shandle3,
1987 const TPM2B_DIGEST *digest,
1988 const TPMT_SIG_SCHEME *inScheme,
1989 const TPMT_TK_HASHCHECK *validation,
1990 TPMT_SIGNATURE **signature);
1991
1992TSS2_RC
1993Esys_Sign_Async(
1994 ESYS_CONTEXT *esysContext,
1995 ESYS_TR keyHandle,
1996 ESYS_TR shandle1,
1997 ESYS_TR shandle2,
1998 ESYS_TR shandle3,
1999 const TPM2B_DIGEST *digest,
2000 const TPMT_SIG_SCHEME *inScheme,
2001 const TPMT_TK_HASHCHECK *validation);
2002
2003TSS2_RC
2004Esys_Sign_Finish(
2005 ESYS_CONTEXT *esysContext,
2006 TPMT_SIGNATURE **signature);
2007
2008/* Table 101 - TPM2_SetCommandCodeAuditStatus Command */
2009
2010TSS2_RC
2011Esys_SetCommandCodeAuditStatus(
2012 ESYS_CONTEXT *esysContext,
2013 ESYS_TR auth,
2014 ESYS_TR shandle1,
2015 ESYS_TR shandle2,
2016 ESYS_TR shandle3,
2017 TPMI_ALG_HASH auditAlg,
2018 const TPML_CC *setList,
2019 const TPML_CC *clearList);
2020
2021TSS2_RC
2022Esys_SetCommandCodeAuditStatus_Async(
2023 ESYS_CONTEXT *esysContext,
2024 ESYS_TR auth,
2025 ESYS_TR shandle1,
2026 ESYS_TR shandle2,
2027 ESYS_TR shandle3,
2028 TPMI_ALG_HASH auditAlg,
2029 const TPML_CC *setList,
2030 const TPML_CC *clearList);
2031
2032TSS2_RC
2033Esys_SetCommandCodeAuditStatus_Finish(
2034 ESYS_CONTEXT *esysContext);
2035
2036/* Table 103 - TPM2_PCR_Extend Command */
2037
2038TSS2_RC
2039Esys_PCR_Extend(
2040 ESYS_CONTEXT *esysContext,
2041 ESYS_TR pcrHandle,
2042 ESYS_TR shandle1,
2043 ESYS_TR shandle2,
2044 ESYS_TR shandle3,
2045 const TPML_DIGEST_VALUES *digests);
2046
2047TSS2_RC
2048Esys_PCR_Extend_Async(
2049 ESYS_CONTEXT *esysContext,
2050 ESYS_TR pcrHandle,
2051 ESYS_TR shandle1,
2052 ESYS_TR shandle2,
2053 ESYS_TR shandle3,
2054 const TPML_DIGEST_VALUES *digests);
2055
2056TSS2_RC
2057Esys_PCR_Extend_Finish(
2058 ESYS_CONTEXT *esysContext);
2059
2060/* Table 105 - TPM2_PCR_Event Command */
2061
2062TSS2_RC
2063Esys_PCR_Event(
2064 ESYS_CONTEXT *esysContext,
2065 ESYS_TR pcrHandle,
2066 ESYS_TR shandle1,
2067 ESYS_TR shandle2,
2068 ESYS_TR shandle3,
2069 const TPM2B_EVENT *eventData,
2070 TPML_DIGEST_VALUES **digests);
2071
2072TSS2_RC
2073Esys_PCR_Event_Async(
2074 ESYS_CONTEXT *esysContext,
2075 ESYS_TR pcrHandle,
2076 ESYS_TR shandle1,
2077 ESYS_TR shandle2,
2078 ESYS_TR shandle3,
2079 const TPM2B_EVENT *eventData);
2080
2081TSS2_RC
2082Esys_PCR_Event_Finish(
2083 ESYS_CONTEXT *esysContext,
2084 TPML_DIGEST_VALUES **digests);
2085
2086/* Table 107 - TPM2_PCR_Read Command */
2087
2088TSS2_RC
2089Esys_PCR_Read(
2090 ESYS_CONTEXT *esysContext,
2091 ESYS_TR shandle1,
2092 ESYS_TR shandle2,
2093 ESYS_TR shandle3,
2094 const TPML_PCR_SELECTION *pcrSelectionIn,
2095 UINT32 *pcrUpdateCounter,
2096 TPML_PCR_SELECTION **pcrSelectionOut,
2097 TPML_DIGEST **pcrValues);
2098
2099TSS2_RC
2100Esys_PCR_Read_Async(
2101 ESYS_CONTEXT *esysContext,
2102 ESYS_TR shandle1,
2103 ESYS_TR shandle2,
2104 ESYS_TR shandle3,
2105 const TPML_PCR_SELECTION *pcrSelectionIn);
2106
2107TSS2_RC
2108Esys_PCR_Read_Finish(
2109 ESYS_CONTEXT *esysContext,
2110 UINT32 *pcrUpdateCounter,
2111 TPML_PCR_SELECTION **pcrSelectionOut,
2112 TPML_DIGEST **pcrValues);
2113
2114/* Table 109 - TPM2_PCR_Allocate Command */
2115
2116TSS2_RC
2117Esys_PCR_Allocate(
2118 ESYS_CONTEXT *esysContext,
2119 ESYS_TR authHandle,
2120 ESYS_TR shandle1,
2121 ESYS_TR shandle2,
2122 ESYS_TR shandle3,
2123 const TPML_PCR_SELECTION *pcrAllocation,
2124 TPMI_YES_NO *allocationSuccess,
2125 UINT32 *maxPCR,
2126 UINT32 *sizeNeeded,
2127 UINT32 *sizeAvailable);
2128
2129TSS2_RC
2130Esys_PCR_Allocate_Async(
2131 ESYS_CONTEXT *esysContext,
2132 ESYS_TR authHandle,
2133 ESYS_TR shandle1,
2134 ESYS_TR shandle2,
2135 ESYS_TR shandle3,
2136 const TPML_PCR_SELECTION *pcrAllocation);
2137
2138TSS2_RC
2139Esys_PCR_Allocate_Finish(
2140 ESYS_CONTEXT *esysContext,
2141 TPMI_YES_NO *allocationSuccess,
2142 UINT32 *maxPCR,
2143 UINT32 *sizeNeeded,
2144 UINT32 *sizeAvailable);
2145
2146/* Table 111 - TPM2_PCR_SetAuthPolicy Command */
2147
2148TSS2_RC
2149Esys_PCR_SetAuthPolicy(
2150 ESYS_CONTEXT *esysContext,
2151 ESYS_TR authHandle,
2152 ESYS_TR shandle1,
2153 ESYS_TR shandle2,
2154 ESYS_TR shandle3,
2155 const TPM2B_DIGEST *authPolicy,
2156 TPMI_ALG_HASH hashAlg,
2157 TPMI_DH_PCR pcrNum);
2158
2159TSS2_RC
2160Esys_PCR_SetAuthPolicy_Async(
2161 ESYS_CONTEXT *esysContext,
2162 ESYS_TR authHandle,
2163 ESYS_TR shandle1,
2164 ESYS_TR shandle2,
2165 ESYS_TR shandle3,
2166 const TPM2B_DIGEST *authPolicy,
2167 TPMI_ALG_HASH hashAlg,
2168 TPMI_DH_PCR pcrNum);
2169
2170TSS2_RC
2171Esys_PCR_SetAuthPolicy_Finish(
2172 ESYS_CONTEXT *esysContext);
2173
2174/* Table 113 - TPM2_PCR_SetAuthValue Command */
2175
2176TSS2_RC
2177Esys_PCR_SetAuthValue(
2178 ESYS_CONTEXT *esysContext,
2179 ESYS_TR pcrHandle,
2180 ESYS_TR shandle1,
2181 ESYS_TR shandle2,
2182 ESYS_TR shandle3,
2183 const TPM2B_DIGEST *auth);
2184
2185TSS2_RC
2186Esys_PCR_SetAuthValue_Async(
2187 ESYS_CONTEXT *esysContext,
2188 ESYS_TR pcrHandle,
2189 ESYS_TR shandle1,
2190 ESYS_TR shandle2,
2191 ESYS_TR shandle3,
2192 const TPM2B_DIGEST *auth);
2193
2194TSS2_RC
2195Esys_PCR_SetAuthValue_Finish(
2196 ESYS_CONTEXT *esysContext);
2197
2198/* Table 115 - TPM2_PCR_Reset Command */
2199
2200TSS2_RC
2201Esys_PCR_Reset(
2202 ESYS_CONTEXT *esysContext,
2203 ESYS_TR pcrHandle,
2204 ESYS_TR shandle1,
2205 ESYS_TR shandle2,
2206 ESYS_TR shandle3);
2207
2208TSS2_RC
2209Esys_PCR_Reset_Async(
2210 ESYS_CONTEXT *esysContext,
2211 ESYS_TR pcrHandle,
2212 ESYS_TR shandle1,
2213 ESYS_TR shandle2,
2214 ESYS_TR shandle3);
2215
2216TSS2_RC
2217Esys_PCR_Reset_Finish(
2218 ESYS_CONTEXT *esysContext);
2219
2220/* Table 117 - TPM2_PolicySigned Command */
2221
2222TSS2_RC
2223Esys_PolicySigned(
2224 ESYS_CONTEXT *esysContext,
2225 ESYS_TR authObject,
2226 ESYS_TR policySession,
2227 ESYS_TR shandle1,
2228 ESYS_TR shandle2,
2229 ESYS_TR shandle3,
2230 const TPM2B_NONCE *nonceTPM,
2231 const TPM2B_DIGEST *cpHashA,
2232 const TPM2B_NONCE *policyRef,
2233 INT32 expiration,
2234 const TPMT_SIGNATURE *auth,
2235 TPM2B_TIMEOUT **timeout,
2236 TPMT_TK_AUTH **policyTicket);
2237
2238TSS2_RC
2239Esys_PolicySigned_Async(
2240 ESYS_CONTEXT *esysContext,
2241 ESYS_TR authObject,
2242 ESYS_TR policySession,
2243 ESYS_TR shandle1,
2244 ESYS_TR shandle2,
2245 ESYS_TR shandle3,
2246 const TPM2B_NONCE *nonceTPM,
2247 const TPM2B_DIGEST *cpHashA,
2248 const TPM2B_NONCE *policyRef,
2249 INT32 expiration,
2250 const TPMT_SIGNATURE *auth);
2251
2252TSS2_RC
2253Esys_PolicySigned_Finish(
2254 ESYS_CONTEXT *esysContext,
2255 TPM2B_TIMEOUT **timeout,
2256 TPMT_TK_AUTH **policyTicket);
2257
2258/* Table 119 - TPM2_PolicySecret Command */
2259
2260TSS2_RC
2261Esys_PolicySecret(
2262 ESYS_CONTEXT *esysContext,
2263 ESYS_TR authHandle,
2264 ESYS_TR policySession,
2265 ESYS_TR shandle1,
2266 ESYS_TR shandle2,
2267 ESYS_TR shandle3,
2268 const TPM2B_NONCE *nonceTPM,
2269 const TPM2B_DIGEST *cpHashA,
2270 const TPM2B_NONCE *policyRef,
2271 INT32 expiration,
2272 TPM2B_TIMEOUT **timeout,
2273 TPMT_TK_AUTH **policyTicket);
2274
2275TSS2_RC
2276Esys_PolicySecret_Async(
2277 ESYS_CONTEXT *esysContext,
2278 ESYS_TR authHandle,
2279 ESYS_TR policySession,
2280 ESYS_TR shandle1,
2281 ESYS_TR shandle2,
2282 ESYS_TR shandle3,
2283 const TPM2B_NONCE *nonceTPM,
2284 const TPM2B_DIGEST *cpHashA,
2285 const TPM2B_NONCE *policyRef,
2286 INT32 expiration);
2287
2288TSS2_RC
2289Esys_PolicySecret_Finish(
2290 ESYS_CONTEXT *esysContext,
2291 TPM2B_TIMEOUT **timeout,
2292 TPMT_TK_AUTH **policyTicket);
2293
2294/* Table 121 - TPM2_PolicyTicket Command */
2295
2296TSS2_RC
2297Esys_PolicyTicket(
2298 ESYS_CONTEXT *esysContext,
2299 ESYS_TR policySession,
2300 ESYS_TR shandle1,
2301 ESYS_TR shandle2,
2302 ESYS_TR shandle3,
2303 const TPM2B_TIMEOUT *timeout,
2304 const TPM2B_DIGEST *cpHashA,
2305 const TPM2B_NONCE *policyRef,
2306 const TPM2B_NAME *authName,
2307 const TPMT_TK_AUTH *ticket);
2308
2309TSS2_RC
2310Esys_PolicyTicket_Async(
2311 ESYS_CONTEXT *esysContext,
2312 ESYS_TR policySession,
2313 ESYS_TR shandle1,
2314 ESYS_TR shandle2,
2315 ESYS_TR shandle3,
2316 const TPM2B_TIMEOUT *timeout,
2317 const TPM2B_DIGEST *cpHashA,
2318 const TPM2B_NONCE *policyRef,
2319 const TPM2B_NAME *authName,
2320 const TPMT_TK_AUTH *ticket);
2321
2322TSS2_RC
2323Esys_PolicyTicket_Finish(
2324 ESYS_CONTEXT *esysContext);
2325
2326/* Table 123 - TPM2_PolicyOR Command */
2327
2328TSS2_RC
2329Esys_PolicyOR(
2330 ESYS_CONTEXT *esysContext,
2331 ESYS_TR policySession,
2332 ESYS_TR shandle1,
2333 ESYS_TR shandle2,
2334 ESYS_TR shandle3,
2335 const TPML_DIGEST *pHashList);
2336
2337TSS2_RC
2338Esys_PolicyOR_Async(
2339 ESYS_CONTEXT *esysContext,
2340 ESYS_TR policySession,
2341 ESYS_TR shandle1,
2342 ESYS_TR shandle2,
2343 ESYS_TR shandle3,
2344 const TPML_DIGEST *pHashList);
2345
2346TSS2_RC
2347Esys_PolicyOR_Finish(
2348 ESYS_CONTEXT *esysContext);
2349
2350/* Table 125 - TPM2_PolicyPCR Command */
2351
2352TSS2_RC
2353Esys_PolicyPCR(
2354 ESYS_CONTEXT *esysContext,
2355 ESYS_TR policySession,
2356 ESYS_TR shandle1,
2357 ESYS_TR shandle2,
2358 ESYS_TR shandle3,
2359 const TPM2B_DIGEST *pcrDigest,
2360 const TPML_PCR_SELECTION *pcrs);
2361
2362TSS2_RC
2363Esys_PolicyPCR_Async(
2364 ESYS_CONTEXT *esysContext,
2365 ESYS_TR policySession,
2366 ESYS_TR shandle1,
2367 ESYS_TR shandle2,
2368 ESYS_TR shandle3,
2369 const TPM2B_DIGEST *pcrDigest,
2370 const TPML_PCR_SELECTION *pcrs);
2371
2372TSS2_RC
2373Esys_PolicyPCR_Finish(
2374 ESYS_CONTEXT *esysContext);
2375
2376/* Table 127 - TPM2_PolicyLocality Command */
2377
2378TSS2_RC
2379Esys_PolicyLocality(
2380 ESYS_CONTEXT *esysContext,
2381 ESYS_TR policySession,
2382 ESYS_TR shandle1,
2383 ESYS_TR shandle2,
2384 ESYS_TR shandle3,
2385 TPMA_LOCALITY locality);
2386
2387TSS2_RC
2388Esys_PolicyLocality_Async(
2389 ESYS_CONTEXT *esysContext,
2390 ESYS_TR policySession,
2391 ESYS_TR shandle1,
2392 ESYS_TR shandle2,
2393 ESYS_TR shandle3,
2394 TPMA_LOCALITY locality);
2395
2396TSS2_RC
2397Esys_PolicyLocality_Finish(
2398 ESYS_CONTEXT *esysContext);
2399
2400/* Table 129 - TPM2_PolicyNV Command */
2401
2402TSS2_RC
2403Esys_PolicyNV(
2404 ESYS_CONTEXT *esysContext,
2405 ESYS_TR authHandle,
2406 ESYS_TR nvIndex,
2407 ESYS_TR policySession,
2408 ESYS_TR shandle1,
2409 ESYS_TR shandle2,
2410 ESYS_TR shandle3,
2411 const TPM2B_OPERAND *operandB,
2412 UINT16 offset,
2413 TPM2_EO operation);
2414
2415TSS2_RC
2416Esys_PolicyNV_Async(
2417 ESYS_CONTEXT *esysContext,
2418 ESYS_TR authHandle,
2419 ESYS_TR nvIndex,
2420 ESYS_TR policySession,
2421 ESYS_TR shandle1,
2422 ESYS_TR shandle2,
2423 ESYS_TR shandle3,
2424 const TPM2B_OPERAND *operandB,
2425 UINT16 offset,
2426 TPM2_EO operation);
2427
2428TSS2_RC
2429Esys_PolicyNV_Finish(
2430 ESYS_CONTEXT *esysContext);
2431
2432/* Table 131 - TPM2_PolicyCounterTimer Command */
2433
2434TSS2_RC
2435Esys_PolicyCounterTimer(
2436 ESYS_CONTEXT *esysContext,
2437 ESYS_TR policySession,
2438 ESYS_TR shandle1,
2439 ESYS_TR shandle2,
2440 ESYS_TR shandle3,
2441 const TPM2B_OPERAND *operandB,
2442 UINT16 offset,
2443 TPM2_EO operation);
2444
2445TSS2_RC
2446Esys_PolicyCounterTimer_Async(
2447 ESYS_CONTEXT *esysContext,
2448 ESYS_TR policySession,
2449 ESYS_TR shandle1,
2450 ESYS_TR shandle2,
2451 ESYS_TR shandle3,
2452 const TPM2B_OPERAND *operandB,
2453 UINT16 offset,
2454 TPM2_EO operation);
2455
2456TSS2_RC
2457Esys_PolicyCounterTimer_Finish(
2458 ESYS_CONTEXT *esysContext);
2459
2460/* Table 133 - TPM2_PolicyCommandCode Command */
2461
2462TSS2_RC
2463Esys_PolicyCommandCode(
2464 ESYS_CONTEXT *esysContext,
2465 ESYS_TR policySession,
2466 ESYS_TR shandle1,
2467 ESYS_TR shandle2,
2468 ESYS_TR shandle3,
2469 TPM2_CC code);
2470
2471TSS2_RC
2472Esys_PolicyCommandCode_Async(
2473 ESYS_CONTEXT *esysContext,
2474 ESYS_TR policySession,
2475 ESYS_TR shandle1,
2476 ESYS_TR shandle2,
2477 ESYS_TR shandle3,
2478 TPM2_CC code);
2479
2480TSS2_RC
2481Esys_PolicyCommandCode_Finish(
2482 ESYS_CONTEXT *esysContext);
2483
2484/* Table 135 - TPM2_PolicyPhysicalPresence Command */
2485
2486TSS2_RC
2487Esys_PolicyPhysicalPresence(
2488 ESYS_CONTEXT *esysContext,
2489 ESYS_TR policySession,
2490 ESYS_TR shandle1,
2491 ESYS_TR shandle2,
2492 ESYS_TR shandle3);
2493
2494TSS2_RC
2495Esys_PolicyPhysicalPresence_Async(
2496 ESYS_CONTEXT *esysContext,
2497 ESYS_TR policySession,
2498 ESYS_TR shandle1,
2499 ESYS_TR shandle2,
2500 ESYS_TR shandle3);
2501
2502TSS2_RC
2503Esys_PolicyPhysicalPresence_Finish(
2504 ESYS_CONTEXT *esysContext);
2505
2506/* Table 137 - TPM2_PolicyCpHash Command */
2507
2508TSS2_RC
2509Esys_PolicyCpHash(
2510 ESYS_CONTEXT *esysContext,
2511 ESYS_TR policySession,
2512 ESYS_TR shandle1,
2513 ESYS_TR shandle2,
2514 ESYS_TR shandle3,
2515 const TPM2B_DIGEST *cpHashA);
2516
2517TSS2_RC
2518Esys_PolicyCpHash_Async(
2519 ESYS_CONTEXT *esysContext,
2520 ESYS_TR policySession,
2521 ESYS_TR shandle1,
2522 ESYS_TR shandle2,
2523 ESYS_TR shandle3,
2524 const TPM2B_DIGEST *cpHashA);
2525
2526TSS2_RC
2527Esys_PolicyCpHash_Finish(
2528 ESYS_CONTEXT *esysContext);
2529
2530/* Table 139 - TPM2_PolicyNameHash Command */
2531
2532TSS2_RC
2533Esys_PolicyNameHash(
2534 ESYS_CONTEXT *esysContext,
2535 ESYS_TR policySession,
2536 ESYS_TR shandle1,
2537 ESYS_TR shandle2,
2538 ESYS_TR shandle3,
2539 const TPM2B_DIGEST *nameHash);
2540
2541TSS2_RC
2542Esys_PolicyNameHash_Async(
2543 ESYS_CONTEXT *esysContext,
2544 ESYS_TR policySession,
2545 ESYS_TR shandle1,
2546 ESYS_TR shandle2,
2547 ESYS_TR shandle3,
2548 const TPM2B_DIGEST *nameHash);
2549
2550TSS2_RC
2551Esys_PolicyNameHash_Finish(
2552 ESYS_CONTEXT *esysContext);
2553
2554/* Table 141 - TPM2_PolicyDuplicationSelect Command */
2555
2556TSS2_RC
2557Esys_PolicyDuplicationSelect(
2558 ESYS_CONTEXT *esysContext,
2559 ESYS_TR policySession,
2560 ESYS_TR shandle1,
2561 ESYS_TR shandle2,
2562 ESYS_TR shandle3,
2563 const TPM2B_NAME *objectName,
2564 const TPM2B_NAME *newParentName,
2565 TPMI_YES_NO includeObject);
2566
2567TSS2_RC
2568Esys_PolicyDuplicationSelect_Async(
2569 ESYS_CONTEXT *esysContext,
2570 ESYS_TR policySession,
2571 ESYS_TR shandle1,
2572 ESYS_TR shandle2,
2573 ESYS_TR shandle3,
2574 const TPM2B_NAME *objectName,
2575 const TPM2B_NAME *newParentName,
2576 TPMI_YES_NO includeObject);
2577
2578TSS2_RC
2579Esys_PolicyDuplicationSelect_Finish(
2580 ESYS_CONTEXT *esysContext);
2581
2582/* Table 143 - TPM2_PolicyAuthorize Command */
2583
2584TSS2_RC
2585Esys_PolicyAuthorize(
2586 ESYS_CONTEXT *esysContext,
2587 ESYS_TR policySession,
2588 ESYS_TR shandle1,
2589 ESYS_TR shandle2,
2590 ESYS_TR shandle3,
2591 const TPM2B_DIGEST *approvedPolicy,
2592 const TPM2B_NONCE *policyRef,
2593 const TPM2B_NAME *keySign,
2594 const TPMT_TK_VERIFIED *checkTicket);
2595
2596TSS2_RC
2597Esys_PolicyAuthorize_Async(
2598 ESYS_CONTEXT *esysContext,
2599 ESYS_TR policySession,
2600 ESYS_TR shandle1,
2601 ESYS_TR shandle2,
2602 ESYS_TR shandle3,
2603 const TPM2B_DIGEST *approvedPolicy,
2604 const TPM2B_NONCE *policyRef,
2605 const TPM2B_NAME *keySign,
2606 const TPMT_TK_VERIFIED *checkTicket);
2607
2608TSS2_RC
2609Esys_PolicyAuthorize_Finish(
2610 ESYS_CONTEXT *esysContext);
2611
2612/* Table 145 - TPM2_PolicyAuthValue Command */
2613
2614TSS2_RC
2615Esys_PolicyAuthValue(
2616 ESYS_CONTEXT *esysContext,
2617 ESYS_TR policySession,
2618 ESYS_TR shandle1,
2619 ESYS_TR shandle2,
2620 ESYS_TR shandle3);
2621
2622TSS2_RC
2623Esys_PolicyAuthValue_Async(
2624 ESYS_CONTEXT *esysContext,
2625 ESYS_TR policySession,
2626 ESYS_TR shandle1,
2627 ESYS_TR shandle2,
2628 ESYS_TR shandle3);
2629
2630TSS2_RC
2631Esys_PolicyAuthValue_Finish(
2632 ESYS_CONTEXT *esysContext);
2633
2634/* Table 147 - TPM2_PolicyPassword Command */
2635
2636TSS2_RC
2637Esys_PolicyPassword(
2638 ESYS_CONTEXT *esysContext,
2639 ESYS_TR policySession,
2640 ESYS_TR shandle1,
2641 ESYS_TR shandle2,
2642 ESYS_TR shandle3);
2643
2644TSS2_RC
2645Esys_PolicyPassword_Async(
2646 ESYS_CONTEXT *esysContext,
2647 ESYS_TR policySession,
2648 ESYS_TR shandle1,
2649 ESYS_TR shandle2,
2650 ESYS_TR shandle3);
2651
2652TSS2_RC
2653Esys_PolicyPassword_Finish(
2654 ESYS_CONTEXT *esysContext);
2655
2656/* Table 149 - TPM2_PolicyGetDigest Command */
2657
2658TSS2_RC
2659Esys_PolicyGetDigest(
2660 ESYS_CONTEXT *esysContext,
2661 ESYS_TR policySession,
2662 ESYS_TR shandle1,
2663 ESYS_TR shandle2,
2664 ESYS_TR shandle3,
2665 TPM2B_DIGEST **policyDigest);
2666
2667TSS2_RC
2668Esys_PolicyGetDigest_Async(
2669 ESYS_CONTEXT *esysContext,
2670 ESYS_TR policySession,
2671 ESYS_TR shandle1,
2672 ESYS_TR shandle2,
2673 ESYS_TR shandle3);
2674
2675TSS2_RC
2676Esys_PolicyGetDigest_Finish(
2677 ESYS_CONTEXT *esysContext,
2678 TPM2B_DIGEST **policyDigest);
2679
2680/* Table 151 - TPM2_PolicyNvWritten Command */
2681
2682TSS2_RC
2683Esys_PolicyNvWritten(
2684 ESYS_CONTEXT *esysContext,
2685 ESYS_TR policySession,
2686 ESYS_TR shandle1,
2687 ESYS_TR shandle2,
2688 ESYS_TR shandle3,
2689 TPMI_YES_NO writtenSet);
2690
2691TSS2_RC
2692Esys_PolicyNvWritten_Async(
2693 ESYS_CONTEXT *esysContext,
2694 ESYS_TR policySession,
2695 ESYS_TR shandle1,
2696 ESYS_TR shandle2,
2697 ESYS_TR shandle3,
2698 TPMI_YES_NO writtenSet);
2699
2700TSS2_RC
2701Esys_PolicyNvWritten_Finish(
2702 ESYS_CONTEXT *esysContext);
2703
2704/* Table 153 - TPM2_PolicyTemplate Command */
2705
2706TSS2_RC
2707Esys_PolicyTemplate(
2708 ESYS_CONTEXT *esysContext,
2709 ESYS_TR policySession,
2710 ESYS_TR shandle1,
2711 ESYS_TR shandle2,
2712 ESYS_TR shandle3,
2713 const TPM2B_DIGEST *templateHash);
2714
2715TSS2_RC
2716Esys_PolicyTemplate_Async(
2717 ESYS_CONTEXT *esysContext,
2718 ESYS_TR policySession,
2719 ESYS_TR shandle1,
2720 ESYS_TR shandle2,
2721 ESYS_TR shandle3,
2722 const TPM2B_DIGEST *templateHash);
2723
2724TSS2_RC
2725Esys_PolicyTemplate_Finish(
2726 ESYS_CONTEXT *esysContext);
2727
2728/* Table 155 - TPM2_PolicyAuthorizeNV Command */
2729
2730TSS2_RC
2731Esys_PolicyAuthorizeNV(
2732 ESYS_CONTEXT *esysContext,
2733 ESYS_TR authHandle,
2734 ESYS_TR nvIndex,
2735 ESYS_TR policySession,
2736 ESYS_TR shandle1,
2737 ESYS_TR shandle2,
2738 ESYS_TR shandle3);
2739
2740TSS2_RC
2741Esys_PolicyAuthorizeNV_Async(
2742 ESYS_CONTEXT *esysContext,
2743 ESYS_TR authHandle,
2744 ESYS_TR nvIndex,
2745 ESYS_TR policySession,
2746 ESYS_TR shandle1,
2747 ESYS_TR shandle2,
2748 ESYS_TR shandle3);
2749
2750TSS2_RC
2751Esys_PolicyAuthorizeNV_Finish(
2752 ESYS_CONTEXT *esysContext);
2753
2754/* Table 157 - TPM2_CreatePrimary Command */
2755
2756TSS2_RC
2757Esys_CreatePrimary(
2758 ESYS_CONTEXT *esysContext,
2759 ESYS_TR primaryHandle,
2760 ESYS_TR shandle1,
2761 ESYS_TR shandle2,
2762 ESYS_TR shandle3,
2763 const TPM2B_SENSITIVE_CREATE *inSensitive,
2764 const TPM2B_PUBLIC *inPublic,
2765 const TPM2B_DATA *outsideInfo,
2766 const TPML_PCR_SELECTION *creationPCR,
2767 ESYS_TR *objectHandle,
2768 TPM2B_PUBLIC **outPublic,
2769 TPM2B_CREATION_DATA **creationData,
2770 TPM2B_DIGEST **creationHash,
2771 TPMT_TK_CREATION **creationTicket);
2772
2773TSS2_RC
2774Esys_CreatePrimary_Async(
2775 ESYS_CONTEXT *esysContext,
2776 ESYS_TR primaryHandle,
2777 ESYS_TR shandle1,
2778 ESYS_TR shandle2,
2779 ESYS_TR shandle3,
2780 const TPM2B_SENSITIVE_CREATE *inSensitive,
2781 const TPM2B_PUBLIC *inPublic,
2782 const TPM2B_DATA *outsideInfo,
2783 const TPML_PCR_SELECTION *creationPCR);
2784
2785TSS2_RC
2786Esys_CreatePrimary_Finish(
2787 ESYS_CONTEXT *esysContext,
2788 ESYS_TR *objectHandle,
2789 TPM2B_PUBLIC **outPublic,
2790 TPM2B_CREATION_DATA **creationData,
2791 TPM2B_DIGEST **creationHash,
2792 TPMT_TK_CREATION **creationTicket);
2793
2794/* Table 159 - TPM2_HierarchyControl Command */
2795
2796TSS2_RC
2797Esys_HierarchyControl(
2798 ESYS_CONTEXT *esysContext,
2799 ESYS_TR authHandle,
2800 ESYS_TR shandle1,
2801 ESYS_TR shandle2,
2802 ESYS_TR shandle3,
2803 ESYS_TR enable,
2804 TPMI_YES_NO state);
2805
2806TSS2_RC
2807Esys_HierarchyControl_Async(
2808 ESYS_CONTEXT *esysContext,
2809 ESYS_TR authHandle,
2810 ESYS_TR shandle1,
2811 ESYS_TR shandle2,
2812 ESYS_TR shandle3,
2813 ESYS_TR enable,
2814 TPMI_YES_NO state);
2815
2816TSS2_RC
2817Esys_HierarchyControl_Finish(
2818 ESYS_CONTEXT *esysContext);
2819
2820/* Table 161 - TPM2_SetPrimaryPolicy Command */
2821
2822TSS2_RC
2823Esys_SetPrimaryPolicy(
2824 ESYS_CONTEXT *esysContext,
2825 ESYS_TR authHandle,
2826 ESYS_TR shandle1,
2827 ESYS_TR shandle2,
2828 ESYS_TR shandle3,
2829 const TPM2B_DIGEST *authPolicy,
2830 TPMI_ALG_HASH hashAlg);
2831
2832TSS2_RC
2833Esys_SetPrimaryPolicy_Async(
2834 ESYS_CONTEXT *esysContext,
2835 ESYS_TR authHandle,
2836 ESYS_TR shandle1,
2837 ESYS_TR shandle2,
2838 ESYS_TR shandle3,
2839 const TPM2B_DIGEST *authPolicy,
2840 TPMI_ALG_HASH hashAlg);
2841
2842TSS2_RC
2843Esys_SetPrimaryPolicy_Finish(
2844 ESYS_CONTEXT *esysContext);
2845
2846/* Table 163 - TPM2_ChangePPS Command */
2847
2848TSS2_RC
2849Esys_ChangePPS(
2850 ESYS_CONTEXT *esysContext,
2851 ESYS_TR authHandle,
2852 ESYS_TR shandle1,
2853 ESYS_TR shandle2,
2854 ESYS_TR shandle3);
2855
2856TSS2_RC
2857Esys_ChangePPS_Async(
2858 ESYS_CONTEXT *esysContext,
2859 ESYS_TR authHandle,
2860 ESYS_TR shandle1,
2861 ESYS_TR shandle2,
2862 ESYS_TR shandle3);
2863
2864TSS2_RC
2865Esys_ChangePPS_Finish(
2866 ESYS_CONTEXT *esysContext);
2867
2868/* Table 165 - TPM2_ChangeEPS Command */
2869
2870TSS2_RC
2871Esys_ChangeEPS(
2872 ESYS_CONTEXT *esysContext,
2873 ESYS_TR authHandle,
2874 ESYS_TR shandle1,
2875 ESYS_TR shandle2,
2876 ESYS_TR shandle3);
2877
2878TSS2_RC
2879Esys_ChangeEPS_Async(
2880 ESYS_CONTEXT *esysContext,
2881 ESYS_TR authHandle,
2882 ESYS_TR shandle1,
2883 ESYS_TR shandle2,
2884 ESYS_TR shandle3);
2885
2886TSS2_RC
2887Esys_ChangeEPS_Finish(
2888 ESYS_CONTEXT *esysContext);
2889
2890/* Table 167 - TPM2_Clear Command */
2891
2892TSS2_RC
2893Esys_Clear(
2894 ESYS_CONTEXT *esysContext,
2895 ESYS_TR authHandle,
2896 ESYS_TR shandle1,
2897 ESYS_TR shandle2,
2898 ESYS_TR shandle3);
2899
2900TSS2_RC
2901Esys_Clear_Async(
2902 ESYS_CONTEXT *esysContext,
2903 ESYS_TR authHandle,
2904 ESYS_TR shandle1,
2905 ESYS_TR shandle2,
2906 ESYS_TR shandle3);
2907
2908TSS2_RC
2909Esys_Clear_Finish(
2910 ESYS_CONTEXT *esysContext);
2911
2912/* Table 169 - TPM2_ClearControl Command */
2913
2914TSS2_RC
2915Esys_ClearControl(
2916 ESYS_CONTEXT *esysContext,
2917 ESYS_TR auth,
2918 ESYS_TR shandle1,
2919 ESYS_TR shandle2,
2920 ESYS_TR shandle3,
2921 TPMI_YES_NO disable);
2922
2923TSS2_RC
2924Esys_ClearControl_Async(
2925 ESYS_CONTEXT *esysContext,
2926 ESYS_TR auth,
2927 ESYS_TR shandle1,
2928 ESYS_TR shandle2,
2929 ESYS_TR shandle3,
2930 TPMI_YES_NO disable);
2931
2932TSS2_RC
2933Esys_ClearControl_Finish(
2934 ESYS_CONTEXT *esysContext);
2935
2936/* Table 171 - TPM2_HierarchyChangeAuth Command */
2937
2938TSS2_RC
2939Esys_HierarchyChangeAuth(
2940 ESYS_CONTEXT *esysContext,
2941 ESYS_TR authHandle,
2942 ESYS_TR shandle1,
2943 ESYS_TR shandle2,
2944 ESYS_TR shandle3,
2945 const TPM2B_AUTH *newAuth);
2946
2947TSS2_RC
2948Esys_HierarchyChangeAuth_Async(
2949 ESYS_CONTEXT *esysContext,
2950 ESYS_TR authHandle,
2951 ESYS_TR shandle1,
2952 ESYS_TR shandle2,
2953 ESYS_TR shandle3,
2954 const TPM2B_AUTH *newAuth);
2955
2956TSS2_RC
2957Esys_HierarchyChangeAuth_Finish(
2958 ESYS_CONTEXT *esysContext);
2959
2960/* Table 173 - TPM2_DictionaryAttackLockReset Command */
2961
2962TSS2_RC
2963Esys_DictionaryAttackLockReset(
2964 ESYS_CONTEXT *esysContext,
2965 ESYS_TR lockHandle,
2966 ESYS_TR shandle1,
2967 ESYS_TR shandle2,
2968 ESYS_TR shandle3);
2969
2970TSS2_RC
2971Esys_DictionaryAttackLockReset_Async(
2972 ESYS_CONTEXT *esysContext,
2973 ESYS_TR lockHandle,
2974 ESYS_TR shandle1,
2975 ESYS_TR shandle2,
2976 ESYS_TR shandle3);
2977
2978TSS2_RC
2979Esys_DictionaryAttackLockReset_Finish(
2980 ESYS_CONTEXT *esysContext);
2981
2982/* Table 175 - TPM2_DictionaryAttackParameters Command */
2983
2984TSS2_RC
2985Esys_DictionaryAttackParameters(
2986 ESYS_CONTEXT *esysContext,
2987 ESYS_TR lockHandle,
2988 ESYS_TR shandle1,
2989 ESYS_TR shandle2,
2990 ESYS_TR shandle3,
2991 UINT32 newMaxTries,
2992 UINT32 newRecoveryTime,
2993 UINT32 lockoutRecovery);
2994
2995TSS2_RC
2996Esys_DictionaryAttackParameters_Async(
2997 ESYS_CONTEXT *esysContext,
2998 ESYS_TR lockHandle,
2999 ESYS_TR shandle1,
3000 ESYS_TR shandle2,
3001 ESYS_TR shandle3,
3002 UINT32 newMaxTries,
3003 UINT32 newRecoveryTime,
3004 UINT32 lockoutRecovery);
3005
3006TSS2_RC
3007Esys_DictionaryAttackParameters_Finish(
3008 ESYS_CONTEXT *esysContext);
3009
3010/* Table 177 - TPM2_PP_Commands Command */
3011
3012TSS2_RC
3013Esys_PP_Commands(
3014 ESYS_CONTEXT *esysContext,
3015 ESYS_TR auth,
3016 ESYS_TR shandle1,
3017 ESYS_TR shandle2,
3018 ESYS_TR shandle3,
3019 const TPML_CC *setList,
3020 const TPML_CC *clearList);
3021
3022TSS2_RC
3023Esys_PP_Commands_Async(
3024 ESYS_CONTEXT *esysContext,
3025 ESYS_TR auth,
3026 ESYS_TR shandle1,
3027 ESYS_TR shandle2,
3028 ESYS_TR shandle3,
3029 const TPML_CC *setList,
3030 const TPML_CC *clearList);
3031
3032TSS2_RC
3033Esys_PP_Commands_Finish(
3034 ESYS_CONTEXT *esysContext);
3035
3036/* Table 179 - TPM2_SetAlgorithmSet Command */
3037
3038TSS2_RC
3039Esys_SetAlgorithmSet(
3040 ESYS_CONTEXT *esysContext,
3041 ESYS_TR authHandle,
3042 ESYS_TR shandle1,
3043 ESYS_TR shandle2,
3044 ESYS_TR shandle3,
3045 UINT32 algorithmSet);
3046
3047TSS2_RC
3048Esys_SetAlgorithmSet_Async(
3049 ESYS_CONTEXT *esysContext,
3050 ESYS_TR authHandle,
3051 ESYS_TR shandle1,
3052 ESYS_TR shandle2,
3053 ESYS_TR shandle3,
3054 UINT32 algorithmSet);
3055
3056TSS2_RC
3057Esys_SetAlgorithmSet_Finish(
3058 ESYS_CONTEXT *esysContext);
3059
3060/* Table 181 - TPM2_FieldUpgradeStart Command */
3061
3062TSS2_RC
3063Esys_FieldUpgradeStart(
3064 ESYS_CONTEXT *esysContext,
3065 ESYS_TR authorization,
3066 ESYS_TR keyHandle,
3067 ESYS_TR shandle1,
3068 ESYS_TR shandle2,
3069 ESYS_TR shandle3,
3070 const TPM2B_DIGEST *fuDigest,
3071 const TPMT_SIGNATURE *manifestSignature);
3072
3073TSS2_RC
3074Esys_FieldUpgradeStart_Async(
3075 ESYS_CONTEXT *esysContext,
3076 ESYS_TR authorization,
3077 ESYS_TR keyHandle,
3078 ESYS_TR shandle1,
3079 ESYS_TR shandle2,
3080 ESYS_TR shandle3,
3081 const TPM2B_DIGEST *fuDigest,
3082 const TPMT_SIGNATURE *manifestSignature);
3083
3084TSS2_RC
3085Esys_FieldUpgradeStart_Finish(
3086 ESYS_CONTEXT *esysContext);
3087
3088/* Table 183 - TPM2_FieldUpgradeData Command */
3089
3090TSS2_RC
3091Esys_FieldUpgradeData(
3092 ESYS_CONTEXT *esysContext,
3093 ESYS_TR shandle1,
3094 ESYS_TR shandle2,
3095 ESYS_TR shandle3,
3096 const TPM2B_MAX_BUFFER *fuData,
3097 TPMT_HA **nextDigest,
3098 TPMT_HA **firstDigest);
3099
3100TSS2_RC
3101Esys_FieldUpgradeData_Async(
3102 ESYS_CONTEXT *esysContext,
3103 ESYS_TR shandle1,
3104 ESYS_TR shandle2,
3105 ESYS_TR shandle3,
3106 const TPM2B_MAX_BUFFER *fuData);
3107
3108TSS2_RC
3109Esys_FieldUpgradeData_Finish(
3110 ESYS_CONTEXT *esysContext,
3111 TPMT_HA **nextDigest,
3112 TPMT_HA **firstDigest);
3113
3114/* Table 185 - TPM2_FirmwareRead Command */
3115
3116TSS2_RC
3117Esys_FirmwareRead(
3118 ESYS_CONTEXT *esysContext,
3119 ESYS_TR shandle1,
3120 ESYS_TR shandle2,
3121 ESYS_TR shandle3,
3122 UINT32 sequenceNumber,
3123 TPM2B_MAX_BUFFER **fuData);
3124
3125TSS2_RC
3126Esys_FirmwareRead_Async(
3127 ESYS_CONTEXT *esysContext,
3128 ESYS_TR shandle1,
3129 ESYS_TR shandle2,
3130 ESYS_TR shandle3,
3131 UINT32 sequenceNumber);
3132
3133TSS2_RC
3134Esys_FirmwareRead_Finish(
3135 ESYS_CONTEXT *esysContext,
3136 TPM2B_MAX_BUFFER **fuData);
3137
3138/* Table 187 - TPM2_ContextSave Command */
3139
3140TSS2_RC
3141Esys_ContextSave(
3142 ESYS_CONTEXT *esysContext,
3143 ESYS_TR saveHandle,
3144 TPMS_CONTEXT **context);
3145
3146TSS2_RC
3147Esys_ContextSave_Async(
3148 ESYS_CONTEXT *esysContext,
3149 ESYS_TR saveHandle);
3150
3151TSS2_RC
3152Esys_ContextSave_Finish(
3153 ESYS_CONTEXT *esysContext,
3154 TPMS_CONTEXT **context);
3155
3156/* Table 189 - TPM2_ContextLoad Command */
3157
3158TSS2_RC
3159Esys_ContextLoad(
3160 ESYS_CONTEXT *esysContext,
3161 const TPMS_CONTEXT *context,
3162 ESYS_TR *loadedHandle);
3163
3164TSS2_RC
3165Esys_ContextLoad_Async(
3166 ESYS_CONTEXT *esysContext,
3167 const TPMS_CONTEXT *context);
3168
3169TSS2_RC
3170Esys_ContextLoad_Finish(
3171 ESYS_CONTEXT *esysContext,
3172 ESYS_TR *loadedHandle);
3173
3174/* Table 191 - TPM2_FlushContext Command */
3175
3176TSS2_RC
3177Esys_FlushContext(
3178 ESYS_CONTEXT *esysContext,
3179 ESYS_TR flushHandle);
3180
3181TSS2_RC
3182Esys_FlushContext_Async(
3183 ESYS_CONTEXT *esysContext,
3184 ESYS_TR flushHandle);
3185
3186TSS2_RC
3187Esys_FlushContext_Finish(
3188 ESYS_CONTEXT *esysContext);
3189
3190/* Table 193 - TPM2_EvictControl Command */
3191
3192TSS2_RC
3193Esys_EvictControl(
3194 ESYS_CONTEXT *esysContext,
3195 ESYS_TR auth,
3196 ESYS_TR objectHandle,
3197 ESYS_TR shandle1,
3198 ESYS_TR shandle2,
3199 ESYS_TR shandle3,
3200 TPMI_DH_PERSISTENT persistentHandle,
3201 ESYS_TR *newObjectHandle);
3202
3203TSS2_RC
3204Esys_EvictControl_Async(
3205 ESYS_CONTEXT *esysContext,
3206 ESYS_TR auth,
3207 ESYS_TR objectHandle,
3208 ESYS_TR shandle1,
3209 ESYS_TR shandle2,
3210 ESYS_TR shandle3,
3211 TPMI_DH_PERSISTENT persistentHandle);
3212
3213TSS2_RC
3214Esys_EvictControl_Finish(
3215 ESYS_CONTEXT *esysContext,
3216 ESYS_TR *newObjectHandle);
3217
3218/* Table 195 - TPM2_ReadClock Command */
3219
3220TSS2_RC
3221Esys_ReadClock(
3222 ESYS_CONTEXT *esysContext,
3223 ESYS_TR shandle1,
3224 ESYS_TR shandle2,
3225 ESYS_TR shandle3,
3226 TPMS_TIME_INFO **currentTime);
3227
3228TSS2_RC
3229Esys_ReadClock_Async(
3230 ESYS_CONTEXT *esysContext,
3231 ESYS_TR shandle1,
3232 ESYS_TR shandle2,
3233 ESYS_TR shandle3);
3234
3235TSS2_RC
3236Esys_ReadClock_Finish(
3237 ESYS_CONTEXT *esysContext,
3238 TPMS_TIME_INFO **currentTime);
3239
3240/* Table 197 - TPM2_ClockSet Command */
3241
3242TSS2_RC
3243Esys_ClockSet(
3244 ESYS_CONTEXT *esysContext,
3245 ESYS_TR auth,
3246 ESYS_TR shandle1,
3247 ESYS_TR shandle2,
3248 ESYS_TR shandle3,
3249 UINT64 newTime);
3250
3251TSS2_RC
3252Esys_ClockSet_Async(
3253 ESYS_CONTEXT *esysContext,
3254 ESYS_TR auth,
3255 ESYS_TR shandle1,
3256 ESYS_TR shandle2,
3257 ESYS_TR shandle3,
3258 UINT64 newTime);
3259
3260TSS2_RC
3261Esys_ClockSet_Finish(
3262 ESYS_CONTEXT *esysContext);
3263
3264/* Table 199 - TPM2_ClockRateAdjust Command */
3265
3266TSS2_RC
3267Esys_ClockRateAdjust(
3268 ESYS_CONTEXT *esysContext,
3269 ESYS_TR auth,
3270 ESYS_TR shandle1,
3271 ESYS_TR shandle2,
3272 ESYS_TR shandle3,
3273 TPM2_CLOCK_ADJUST rateAdjust);
3274
3275TSS2_RC
3276Esys_ClockRateAdjust_Async(
3277 ESYS_CONTEXT *esysContext,
3278 ESYS_TR auth,
3279 ESYS_TR shandle1,
3280 ESYS_TR shandle2,
3281 ESYS_TR shandle3,
3282 TPM2_CLOCK_ADJUST rateAdjust);
3283
3284TSS2_RC
3285Esys_ClockRateAdjust_Finish(
3286 ESYS_CONTEXT *esysContext);
3287
3288/* Table 201 - TPM2_GetCapability Command */
3289
3290TSS2_RC
3291Esys_GetCapability(
3292 ESYS_CONTEXT *esysContext,
3293 ESYS_TR shandle1,
3294 ESYS_TR shandle2,
3295 ESYS_TR shandle3,
3296 TPM2_CAP capability,
3297 UINT32 property,
3298 UINT32 propertyCount,
3299 TPMI_YES_NO *moreData,
3300 TPMS_CAPABILITY_DATA **capabilityData);
3301
3302TSS2_RC
3303Esys_GetCapability_Async(
3304 ESYS_CONTEXT *esysContext,
3305 ESYS_TR shandle1,
3306 ESYS_TR shandle2,
3307 ESYS_TR shandle3,
3308 TPM2_CAP capability,
3309 UINT32 property,
3310 UINT32 propertyCount);
3311
3312TSS2_RC
3313Esys_GetCapability_Finish(
3314 ESYS_CONTEXT *esysContext,
3315 TPMI_YES_NO *moreData,
3316 TPMS_CAPABILITY_DATA **capabilityData);
3317
3318/* Table 203 - TPM2_TestParms Command */
3319
3320TSS2_RC
3321Esys_TestParms(
3322 ESYS_CONTEXT *esysContext,
3323 ESYS_TR shandle1,
3324 ESYS_TR shandle2,
3325 ESYS_TR shandle3,
3326 const TPMT_PUBLIC_PARMS *parameters);
3327
3328TSS2_RC
3329Esys_TestParms_Async(
3330 ESYS_CONTEXT *esysContext,
3331 ESYS_TR shandle1,
3332 ESYS_TR shandle2,
3333 ESYS_TR shandle3,
3334 const TPMT_PUBLIC_PARMS *parameters);
3335
3336TSS2_RC
3337Esys_TestParms_Finish(
3338 ESYS_CONTEXT *esysContext);
3339
3340/* Table 205 - TPM2_NV_DefineSpace Command */
3341
3342TSS2_RC
3343Esys_NV_DefineSpace(
3344 ESYS_CONTEXT *esysContext,
3345 ESYS_TR authHandle,
3346 ESYS_TR shandle1,
3347 ESYS_TR shandle2,
3348 ESYS_TR shandle3,
3349 const TPM2B_AUTH *auth,
3350 const TPM2B_NV_PUBLIC *publicInfo,
3351 ESYS_TR *nvHandle);
3352
3353TSS2_RC
3354Esys_NV_DefineSpace_Async(
3355 ESYS_CONTEXT *esysContext,
3356 ESYS_TR authHandle,
3357 ESYS_TR shandle1,
3358 ESYS_TR shandle2,
3359 ESYS_TR shandle3,
3360 const TPM2B_AUTH *auth,
3361 const TPM2B_NV_PUBLIC *publicInfo);
3362
3363TSS2_RC
3364Esys_NV_DefineSpace_Finish(
3365 ESYS_CONTEXT *esysContext,
3366 ESYS_TR *nvHandle);
3367
3368/* Table 207 - TPM2_NV_UndefineSpace Command */
3369
3370TSS2_RC
3371Esys_NV_UndefineSpace(
3372 ESYS_CONTEXT *esysContext,
3373 ESYS_TR authHandle,
3374 ESYS_TR nvIndex,
3375 ESYS_TR shandle1,
3376 ESYS_TR shandle2,
3377 ESYS_TR shandle3);
3378
3379TSS2_RC
3380Esys_NV_UndefineSpace_Async(
3381 ESYS_CONTEXT *esysContext,
3382 ESYS_TR authHandle,
3383 ESYS_TR nvIndex,
3384 ESYS_TR shandle1,
3385 ESYS_TR shandle2,
3386 ESYS_TR shandle3);
3387
3388TSS2_RC
3389Esys_NV_UndefineSpace_Finish(
3390 ESYS_CONTEXT *esysContext);
3391
3392/* Table 209 - TPM2_NV_UndefineSpaceSpecial Command */
3393
3394TSS2_RC
3395Esys_NV_UndefineSpaceSpecial(
3396 ESYS_CONTEXT *esysContext,
3397 ESYS_TR nvIndex,
3398 ESYS_TR platform,
3399 ESYS_TR shandle1,
3400 ESYS_TR shandle2,
3401 ESYS_TR shandle3);
3402
3403TSS2_RC
3404Esys_NV_UndefineSpaceSpecial_Async(
3405 ESYS_CONTEXT *esysContext,
3406 ESYS_TR nvIndex,
3407 ESYS_TR platform,
3408 ESYS_TR shandle1,
3409 ESYS_TR shandle2,
3410 ESYS_TR shandle3);
3411
3412TSS2_RC
3413Esys_NV_UndefineSpaceSpecial_Finish(
3414 ESYS_CONTEXT *esysContext);
3415
3416/* Table 211 - TPM2_NV_ReadPublic Command */
3417
3418TSS2_RC
3419Esys_NV_ReadPublic(
3420 ESYS_CONTEXT *esysContext,
3421 ESYS_TR nvIndex,
3422 ESYS_TR shandle1,
3423 ESYS_TR shandle2,
3424 ESYS_TR shandle3,
3425 TPM2B_NV_PUBLIC **nvPublic,
3426 TPM2B_NAME **nvName);
3427
3428TSS2_RC
3429Esys_NV_ReadPublic_Async(
3430 ESYS_CONTEXT *esysContext,
3431 ESYS_TR nvIndex,
3432 ESYS_TR shandle1,
3433 ESYS_TR shandle2,
3434 ESYS_TR shandle3);
3435
3436TSS2_RC
3437Esys_NV_ReadPublic_Finish(
3438 ESYS_CONTEXT *esysContext,
3439 TPM2B_NV_PUBLIC **nvPublic,
3440 TPM2B_NAME **nvName);
3441
3442/* Table 213 - TPM2_NV_Write Command */
3443
3444TSS2_RC
3445Esys_NV_Write(
3446 ESYS_CONTEXT *esysContext,
3447 ESYS_TR authHandle,
3448 ESYS_TR nvIndex,
3449 ESYS_TR shandle1,
3450 ESYS_TR shandle2,
3451 ESYS_TR shandle3,
3452 const TPM2B_MAX_NV_BUFFER *data,
3453 UINT16 offset);
3454
3455TSS2_RC
3456Esys_NV_Write_Async(
3457 ESYS_CONTEXT *esysContext,
3458 ESYS_TR authHandle,
3459 ESYS_TR nvIndex,
3460 ESYS_TR shandle1,
3461 ESYS_TR shandle2,
3462 ESYS_TR shandle3,
3463 const TPM2B_MAX_NV_BUFFER *data,
3464 UINT16 offset);
3465
3466TSS2_RC
3467Esys_NV_Write_Finish(
3468 ESYS_CONTEXT *esysContext);
3469
3470/* Table 215 - TPM2_NV_Increment Command */
3471
3472TSS2_RC
3473Esys_NV_Increment(
3474 ESYS_CONTEXT *esysContext,
3475 ESYS_TR authHandle,
3476 ESYS_TR nvIndex,
3477 ESYS_TR shandle1,
3478 ESYS_TR shandle2,
3479 ESYS_TR shandle3);
3480
3481TSS2_RC
3482Esys_NV_Increment_Async(
3483 ESYS_CONTEXT *esysContext,
3484 ESYS_TR authHandle,
3485 ESYS_TR nvIndex,
3486 ESYS_TR shandle1,
3487 ESYS_TR shandle2,
3488 ESYS_TR shandle3);
3489
3490TSS2_RC
3491Esys_NV_Increment_Finish(
3492 ESYS_CONTEXT *esysContext);
3493
3494/* Table 217 - TPM2_NV_Extend Command */
3495
3496TSS2_RC
3497Esys_NV_Extend(
3498 ESYS_CONTEXT *esysContext,
3499 ESYS_TR authHandle,
3500 ESYS_TR nvIndex,
3501 ESYS_TR shandle1,
3502 ESYS_TR shandle2,
3503 ESYS_TR shandle3,
3504 const TPM2B_MAX_NV_BUFFER *data);
3505
3506TSS2_RC
3507Esys_NV_Extend_Async(
3508 ESYS_CONTEXT *esysContext,
3509 ESYS_TR authHandle,
3510 ESYS_TR nvIndex,
3511 ESYS_TR shandle1,
3512 ESYS_TR shandle2,
3513 ESYS_TR shandle3,
3514 const TPM2B_MAX_NV_BUFFER *data);
3515
3516TSS2_RC
3517Esys_NV_Extend_Finish(
3518 ESYS_CONTEXT *esysContext);
3519
3520/* Table 219 - TPM2_NV_SetBits Command */
3521
3522TSS2_RC
3523Esys_NV_SetBits(
3524 ESYS_CONTEXT *esysContext,
3525 ESYS_TR authHandle,
3526 ESYS_TR nvIndex,
3527 ESYS_TR shandle1,
3528 ESYS_TR shandle2,
3529 ESYS_TR shandle3,
3530 UINT64 bits);
3531
3532TSS2_RC
3533Esys_NV_SetBits_Async(
3534 ESYS_CONTEXT *esysContext,
3535 ESYS_TR authHandle,
3536 ESYS_TR nvIndex,
3537 ESYS_TR shandle1,
3538 ESYS_TR shandle2,
3539 ESYS_TR shandle3,
3540 UINT64 bits);
3541
3542TSS2_RC
3543Esys_NV_SetBits_Finish(
3544 ESYS_CONTEXT *esysContext);
3545
3546/* Table 221 - TPM2_NV_WriteLock Command */
3547
3548TSS2_RC
3549Esys_NV_WriteLock(
3550 ESYS_CONTEXT *esysContext,
3551 ESYS_TR authHandle,
3552 ESYS_TR nvIndex,
3553 ESYS_TR shandle1,
3554 ESYS_TR shandle2,
3555 ESYS_TR shandle3);
3556
3557TSS2_RC
3558Esys_NV_WriteLock_Async(
3559 ESYS_CONTEXT *esysContext,
3560 ESYS_TR authHandle,
3561 ESYS_TR nvIndex,
3562 ESYS_TR shandle1,
3563 ESYS_TR shandle2,
3564 ESYS_TR shandle3);
3565
3566TSS2_RC
3567Esys_NV_WriteLock_Finish(
3568 ESYS_CONTEXT *esysContext);
3569
3570/* Table 223 - TPM2_NV_GlobalWriteLock Command */
3571
3572TSS2_RC
3573Esys_NV_GlobalWriteLock(
3574 ESYS_CONTEXT *esysContext,
3575 ESYS_TR authHandle,
3576 ESYS_TR shandle1,
3577 ESYS_TR shandle2,
3578 ESYS_TR shandle3);
3579
3580TSS2_RC
3581Esys_NV_GlobalWriteLock_Async(
3582 ESYS_CONTEXT *esysContext,
3583 ESYS_TR authHandle,
3584 ESYS_TR shandle1,
3585 ESYS_TR shandle2,
3586 ESYS_TR shandle3);
3587
3588TSS2_RC
3589Esys_NV_GlobalWriteLock_Finish(
3590 ESYS_CONTEXT *esysContext);
3591
3592/* Table 225 - TPM2_NV_Read Command */
3593
3594TSS2_RC
3595Esys_NV_Read(
3596 ESYS_CONTEXT *esysContext,
3597 ESYS_TR authHandle,
3598 ESYS_TR nvIndex,
3599 ESYS_TR shandle1,
3600 ESYS_TR shandle2,
3601 ESYS_TR shandle3,
3602 UINT16 size,
3603 UINT16 offset,
3604 TPM2B_MAX_NV_BUFFER **data);
3605
3606TSS2_RC
3607Esys_NV_Read_Async(
3608 ESYS_CONTEXT *esysContext,
3609 ESYS_TR authHandle,
3610 ESYS_TR nvIndex,
3611 ESYS_TR shandle1,
3612 ESYS_TR shandle2,
3613 ESYS_TR shandle3,
3614 UINT16 size,
3615 UINT16 offset);
3616
3617TSS2_RC
3618Esys_NV_Read_Finish(
3619 ESYS_CONTEXT *esysContext,
3620 TPM2B_MAX_NV_BUFFER **data);
3621
3622/* Table 227 - TPM2_NV_ReadLock Command */
3623
3624TSS2_RC
3625Esys_NV_ReadLock(
3626 ESYS_CONTEXT *esysContext,
3627 ESYS_TR authHandle,
3628 ESYS_TR nvIndex,
3629 ESYS_TR shandle1,
3630 ESYS_TR shandle2,
3631 ESYS_TR shandle3);
3632
3633TSS2_RC
3634Esys_NV_ReadLock_Async(
3635 ESYS_CONTEXT *esysContext,
3636 ESYS_TR authHandle,
3637 ESYS_TR nvIndex,
3638 ESYS_TR shandle1,
3639 ESYS_TR shandle2,
3640 ESYS_TR shandle3);
3641
3642TSS2_RC
3643Esys_NV_ReadLock_Finish(
3644 ESYS_CONTEXT *esysContext);
3645
3646/* Table 229 - TPM2_NV_ChangeAuth Command */
3647
3648TSS2_RC
3649Esys_NV_ChangeAuth(
3650 ESYS_CONTEXT *esysContext,
3651 ESYS_TR nvIndex,
3652 ESYS_TR shandle1,
3653 ESYS_TR shandle2,
3654 ESYS_TR shandle3,
3655 const TPM2B_AUTH *newAuth);
3656
3657TSS2_RC
3658Esys_NV_ChangeAuth_Async(
3659 ESYS_CONTEXT *esysContext,
3660 ESYS_TR nvIndex,
3661 ESYS_TR shandle1,
3662 ESYS_TR shandle2,
3663 ESYS_TR shandle3,
3664 const TPM2B_AUTH *newAuth);
3665
3666TSS2_RC
3667Esys_NV_ChangeAuth_Finish(
3668 ESYS_CONTEXT *esysContext);
3669
3670/* Table 231 - TPM2_NV_Certify Command */
3671
3672TSS2_RC
3673Esys_NV_Certify(
3674 ESYS_CONTEXT *esysContext,
3675 ESYS_TR signHandle,
3676 ESYS_TR authHandle,
3677 ESYS_TR nvIndex,
3678 ESYS_TR shandle1,
3679 ESYS_TR shandle2,
3680 ESYS_TR shandle3,
3681 const TPM2B_DATA *qualifyingData,
3682 const TPMT_SIG_SCHEME *inScheme,
3683 UINT16 size,
3684 UINT16 offset,
3685 TPM2B_ATTEST **certifyInfo,
3686 TPMT_SIGNATURE **signature);
3687
3688TSS2_RC
3689Esys_NV_Certify_Async(
3690 ESYS_CONTEXT *esysContext,
3691 ESYS_TR signHandle,
3692 ESYS_TR authHandle,
3693 ESYS_TR nvIndex,
3694 ESYS_TR shandle1,
3695 ESYS_TR shandle2,
3696 ESYS_TR shandle3,
3697 const TPM2B_DATA *qualifyingData,
3698 const TPMT_SIG_SCHEME *inScheme,
3699 UINT16 size,
3700 UINT16 offset);
3701
3702TSS2_RC
3703Esys_NV_Certify_Finish(
3704 ESYS_CONTEXT *esysContext,
3705 TPM2B_ATTEST **certifyInfo,
3706 TPMT_SIGNATURE **signature);
3707
3708/* Table 233 - TPM2_Vendor_TCG_Test Command */
3709
3710TSS2_RC
3711Esys_Vendor_TCG_Test(
3712 ESYS_CONTEXT *esysContext,
3713 ESYS_TR shandle1,
3714 ESYS_TR shandle2,
3715 ESYS_TR shandle3,
3716 const TPM2B_DATA *inputData,
3717 TPM2B_DATA **outputData);
3718
3719TSS2_RC
3720Esys_Vendor_TCG_Test_Async(
3721 ESYS_CONTEXT *esysContext,
3722 ESYS_TR shandle1,
3723 ESYS_TR shandle2,
3724 ESYS_TR shandle3,
3725 const TPM2B_DATA *inputData);
3726
3727TSS2_RC
3728Esys_Vendor_TCG_Test_Finish(
3729 ESYS_CONTEXT *esysContext,
3730 TPM2B_DATA **outputData);
3731
3732/*
3733 * TPM 2.0 ESAPI Helper Functions
3734 */
3735void
3736Esys_Free(
3737 void *__ptr);
3738
3739TSS2_RC
3740Esys_GetSysContext(
3741 ESYS_CONTEXT *esys_context,
3742 TSS2_SYS_CONTEXT **sys_context);
3743
3744TSS2_RC
3745Esys_SetCryptoCallbacks(
3746 ESYS_CONTEXT *esysContext,
3747 ESYS_CRYPTO_CALLBACKS *callbacks);
3748
3749#ifdef __cplusplus
3750}
3751#endif
3752
3753#endif /* TSS2_ESYS_H */
Definition esys_int.h:161
Definition tss2_esys.h:356
Definition esys_crypto_mbed.c:34