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