You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

3253 lines
68 KiB

/* SPDX-License-Identifier: BSD-2-Clause */
/*******************************************************************************
* Copyright 2017-2018, Fraunhofer SIT sponsored by Infineon Technologies AG
* All rights reserved.
*******************************************************************************/
#ifndef TSS2_ESYS_H
#define TSS2_ESYS_H
#include "tss2_tcti.h"
#include "tss2_sys.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef uint32_t ESYS_TR;
#define ESYS_TR_NONE 0xfffU
#define ESYS_TR_PASSWORD 0x0ffU
#define ESYS_TR_PCR0 0U
#define ESYS_TR_PCR1 1U
#define ESYS_TR_PCR2 2U
#define ESYS_TR_PCR3 3U
#define ESYS_TR_PCR4 4U
#define ESYS_TR_PCR5 5U
#define ESYS_TR_PCR6 6U
#define ESYS_TR_PCR7 7U
#define ESYS_TR_PCR8 8U
#define ESYS_TR_PCR9 9U
#define ESYS_TR_PCR10 10U
#define ESYS_TR_PCR11 11U
#define ESYS_TR_PCR12 12U
#define ESYS_TR_PCR13 13U
#define ESYS_TR_PCR14 14U
#define ESYS_TR_PCR15 15U
#define ESYS_TR_PCR16 16U
#define ESYS_TR_PCR17 17U
#define ESYS_TR_PCR18 18U
#define ESYS_TR_PCR19 19U
#define ESYS_TR_PCR20 20U
#define ESYS_TR_PCR21 21U
#define ESYS_TR_PCR22 22U
#define ESYS_TR_PCR23 23U
#define ESYS_TR_PCR24 24U
#define ESYS_TR_PCR25 25U
#define ESYS_TR_PCR26 26U
#define ESYS_TR_PCR27 27U
#define ESYS_TR_PCR28 28U
#define ESYS_TR_PCR29 29U
#define ESYS_TR_PCR30 30U
#define ESYS_TR_PCR31 31U
/* From TPM_RH_CONSTANTS */
#define ESYS_TR_RH_OWNER 0x101U
#define ESYS_TR_RH_NULL 0x107U
#define ESYS_TR_RH_LOCKOUT 0x10AU
#define ESYS_TR_RH_ENDORSEMENT 0x10BU
#define ESYS_TR_RH_PLATFORM 0x10CU
#define ESYS_TR_RH_PLATFORM_NV 0x10DU
#define ESYS_TR_RH_AUTH_FIRST 0x110U
#define ESYS_TR_RH_AUTH(x) (ESYS_TR_RH_AUTH_FIRST + (ESYS_TR)(x))
#define ESYS_TR_MIN_OBJECT 0x1000U
typedef struct ESYS_CONTEXT ESYS_CONTEXT;
/*
* TPM 2.0 ESAPI Functions
*/
TSS2_RC
Esys_Initialize(
ESYS_CONTEXT **esys_context,
TSS2_TCTI_CONTEXT *tcti,
TSS2_ABI_VERSION *abiVersion);
void
Esys_Finalize(
ESYS_CONTEXT **context);
TSS2_RC
Esys_GetTcti(
ESYS_CONTEXT *esys_context,
TSS2_TCTI_CONTEXT **tcti);
TSS2_RC
Esys_GetPollHandles(
ESYS_CONTEXT *esys_context,
TSS2_TCTI_POLL_HANDLE **handles,
size_t *count);
TSS2_RC
Esys_SetTimeout(
ESYS_CONTEXT *esys_context,
int32_t timeout);
TSS2_RC
Esys_TR_Serialize(
ESYS_CONTEXT *esys_context,
ESYS_TR object,
uint8_t **buffer,
size_t *buffer_size);
TSS2_RC
Esys_TR_Deserialize(
ESYS_CONTEXT *esys_context,
uint8_t const *buffer,
size_t buffer_size,
ESYS_TR *esys_handle);
TSS2_RC
Esys_TR_FromTPMPublic_Async(
ESYS_CONTEXT *esysContext,
TPM2_HANDLE tpm_handle,
ESYS_TR optionalSession1,
ESYS_TR optionalSession2,
ESYS_TR optionalSession3);
TSS2_RC
Esys_TR_FromTPMPublic_Finish(
ESYS_CONTEXT *esysContext,
ESYS_TR *object);
TSS2_RC
Esys_TR_FromTPMPublic(
ESYS_CONTEXT *esysContext,
TPM2_HANDLE tpm_handle,
ESYS_TR optionalSession1,
ESYS_TR optionalSession2,
ESYS_TR optionalSession3,
ESYS_TR *object);
TSS2_RC
Esys_TR_Close(
ESYS_CONTEXT *esys_context,
ESYS_TR *rsrc_handle);
TSS2_RC
Esys_TR_SetAuth(
ESYS_CONTEXT *esysContext,
ESYS_TR handle,
TPM2B_AUTH const *authValue);
TSS2_RC
Esys_TR_GetName(
ESYS_CONTEXT *esysContext,
ESYS_TR handle,
TPM2B_NAME **name);
TSS2_RC
Esys_TRSess_GetAttributes(
ESYS_CONTEXT *esysContext,
ESYS_TR session,
TPMA_SESSION *flags);
TSS2_RC
Esys_TRSess_SetAttributes(
ESYS_CONTEXT *esysContext,
ESYS_TR session,
TPMA_SESSION flags,
TPMA_SESSION mask);
TSS2_RC
Esys_TRSess_GetNonceTPM(
ESYS_CONTEXT *esysContext,
ESYS_TR session,
TPM2B_NONCE **nonceTPM);
TSS2_RC
Esys_TR_GetTpmHandle(
ESYS_CONTEXT *esys_context,
ESYS_TR esys_handle,
TPM2_HANDLE *tpm_handle);
TSS2_RC
Esys_TRSess_GetAuthRequired(
ESYS_CONTEXT *esys_context,
ESYS_TR esys_handle,
TPMI_YES_NO *auth_needed);
/* Table 5 - TPM2_Startup Command */
TSS2_RC
Esys_Startup(
ESYS_CONTEXT *esysContext,
TPM2_SU startupType);
TSS2_RC
Esys_Startup_Async(
ESYS_CONTEXT *esysContext,
TPM2_SU startupType);
TSS2_RC
Esys_Startup_Finish(
ESYS_CONTEXT *esysContext);
/* Table 7 - TPM2_Shutdown Command */
TSS2_RC
Esys_Shutdown(
ESYS_CONTEXT *esysContext,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
TPM2_SU shutdownType);
TSS2_RC
Esys_Shutdown_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
TPM2_SU shutdownType);
TSS2_RC
Esys_Shutdown_Finish(
ESYS_CONTEXT *esysContext);
/* Table 9 - TPM2_SelfTest Command */
TSS2_RC
Esys_SelfTest(
ESYS_CONTEXT *esysContext,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
TPMI_YES_NO fullTest);
TSS2_RC
Esys_SelfTest_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
TPMI_YES_NO fullTest);
TSS2_RC
Esys_SelfTest_Finish(
ESYS_CONTEXT *esysContext);
/* Table 11 - TPM2_IncrementalSelfTest Command */
TSS2_RC
Esys_IncrementalSelfTest(
ESYS_CONTEXT *esysContext,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPML_ALG *toTest,
TPML_ALG **toDoList);
TSS2_RC
Esys_IncrementalSelfTest_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPML_ALG *toTest);
TSS2_RC
Esys_IncrementalSelfTest_Finish(
ESYS_CONTEXT *esysContext,
TPML_ALG **toDoList);
/* Table 13 - TPM2_GetTestResult Command */
TSS2_RC
Esys_GetTestResult(
ESYS_CONTEXT *esysContext,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
TPM2B_MAX_BUFFER **outData,
TPM2_RC *testResult);
TSS2_RC
Esys_GetTestResult_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3);
TSS2_RC
Esys_GetTestResult_Finish(
ESYS_CONTEXT *esysContext,
TPM2B_MAX_BUFFER **outData,
TPM2_RC *testResult);
/* Table 15 - TPM2_StartAuthSession Command */
TSS2_RC
Esys_StartAuthSession(
ESYS_CONTEXT *esysContext,
ESYS_TR tpmKey,
ESYS_TR bind,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_NONCE *nonceCaller,
TPM2_SE sessionType,
const TPMT_SYM_DEF *symmetric,
TPMI_ALG_HASH authHash,
ESYS_TR *sessionHandle);
TSS2_RC
Esys_StartAuthSession_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR tpmKey,
ESYS_TR bind,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_NONCE *nonceCaller,
TPM2_SE sessionType,
const TPMT_SYM_DEF *symmetric,
TPMI_ALG_HASH authHash);
TSS2_RC
Esys_StartAuthSession_Finish(
ESYS_CONTEXT *esysContext,
ESYS_TR *sessionHandle);
/* Table 17 - TPM2_PolicyRestart Command */
TSS2_RC
Esys_PolicyRestart(
ESYS_CONTEXT *esysContext,
ESYS_TR sessionHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3);
TSS2_RC
Esys_PolicyRestart_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR sessionHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3);
TSS2_RC
Esys_PolicyRestart_Finish(
ESYS_CONTEXT *esysContext);
/* Table 19 - TPM2_Create Command */
TSS2_RC
Esys_Create(
ESYS_CONTEXT *esysContext,
ESYS_TR parentHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_SENSITIVE_CREATE *inSensitive,
const TPM2B_PUBLIC *inPublic,
const TPM2B_DATA *outsideInfo,
const TPML_PCR_SELECTION *creationPCR,
TPM2B_PRIVATE **outPrivate,
TPM2B_PUBLIC **outPublic,
TPM2B_CREATION_DATA **creationData,
TPM2B_DIGEST **creationHash,
TPMT_TK_CREATION **creationTicket);
TSS2_RC
Esys_Create_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR parentHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_SENSITIVE_CREATE *inSensitive,
const TPM2B_PUBLIC *inPublic,
const TPM2B_DATA *outsideInfo,
const TPML_PCR_SELECTION *creationPCR);
TSS2_RC
Esys_Create_Finish(
ESYS_CONTEXT *esysContext,
TPM2B_PRIVATE **outPrivate,
TPM2B_PUBLIC **outPublic,
TPM2B_CREATION_DATA **creationData,
TPM2B_DIGEST **creationHash,
TPMT_TK_CREATION **creationTicket);
/* Table 21 - TPM2_Load Command */
TSS2_RC
Esys_Load(
ESYS_CONTEXT *esysContext,
ESYS_TR parentHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_PRIVATE *inPrivate,
const TPM2B_PUBLIC *inPublic,
ESYS_TR *objectHandle);
TSS2_RC
Esys_Load_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR parentHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_PRIVATE *inPrivate,
const TPM2B_PUBLIC *inPublic);
TSS2_RC
Esys_Load_Finish(
ESYS_CONTEXT *esysContext,
ESYS_TR *objectHandle);
/* Table 23 - TPM2_LoadExternal Command */
TSS2_RC
Esys_LoadExternal(
ESYS_CONTEXT *esysContext,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_SENSITIVE *inPrivate,
const TPM2B_PUBLIC *inPublic,
TPMI_RH_HIERARCHY hierarchy,
ESYS_TR *objectHandle);
TSS2_RC
Esys_LoadExternal_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_SENSITIVE *inPrivate,
const TPM2B_PUBLIC *inPublic,
TPMI_RH_HIERARCHY hierarchy);
TSS2_RC
Esys_LoadExternal_Finish(
ESYS_CONTEXT *esysContext,
ESYS_TR *objectHandle);
/* Table 25 - TPM2_ReadPublic Command */
TSS2_RC
Esys_ReadPublic(
ESYS_CONTEXT *esysContext,
ESYS_TR objectHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
TPM2B_PUBLIC **outPublic,
TPM2B_NAME **name,
TPM2B_NAME **qualifiedName);
TSS2_RC
Esys_ReadPublic_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR objectHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3);
TSS2_RC
Esys_ReadPublic_Finish(
ESYS_CONTEXT *esysContext,
TPM2B_PUBLIC **outPublic,
TPM2B_NAME **name,
TPM2B_NAME **qualifiedName);
/* Table 27 - TPM2_ActivateCredential Command */
TSS2_RC
Esys_ActivateCredential(
ESYS_CONTEXT *esysContext,
ESYS_TR activateHandle,
ESYS_TR keyHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_ID_OBJECT *credentialBlob,
const TPM2B_ENCRYPTED_SECRET *secret,
TPM2B_DIGEST **certInfo);
TSS2_RC
Esys_ActivateCredential_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR activateHandle,
ESYS_TR keyHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_ID_OBJECT *credentialBlob,
const TPM2B_ENCRYPTED_SECRET *secret);
TSS2_RC
Esys_ActivateCredential_Finish(
ESYS_CONTEXT *esysContext,
TPM2B_DIGEST **certInfo);
/* Table 29 - TPM2_MakeCredential Command */
TSS2_RC
Esys_MakeCredential(
ESYS_CONTEXT *esysContext,
ESYS_TR handle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_DIGEST *credential,
const TPM2B_NAME *objectName,
TPM2B_ID_OBJECT **credentialBlob,
TPM2B_ENCRYPTED_SECRET **secret);
TSS2_RC
Esys_MakeCredential_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR handle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_DIGEST *credential,
const TPM2B_NAME *objectName);
TSS2_RC
Esys_MakeCredential_Finish(
ESYS_CONTEXT *esysContext,
TPM2B_ID_OBJECT **credentialBlob,
TPM2B_ENCRYPTED_SECRET **secret);
/* Table 31 - TPM2_Unseal Command */
TSS2_RC
Esys_Unseal(
ESYS_CONTEXT *esysContext,
ESYS_TR itemHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
TPM2B_SENSITIVE_DATA **outData);
TSS2_RC
Esys_Unseal_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR itemHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3);
TSS2_RC
Esys_Unseal_Finish(
ESYS_CONTEXT *esysContext,
TPM2B_SENSITIVE_DATA **outData);
/* Table 33 - TPM2_ObjectChangeAuth Command */
TSS2_RC
Esys_ObjectChangeAuth(
ESYS_CONTEXT *esysContext,
ESYS_TR objectHandle,
ESYS_TR parentHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_AUTH *newAuth,
TPM2B_PRIVATE **outPrivate);
TSS2_RC
Esys_ObjectChangeAuth_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR objectHandle,
ESYS_TR parentHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_AUTH *newAuth);
TSS2_RC
Esys_ObjectChangeAuth_Finish(
ESYS_CONTEXT *esysContext,
TPM2B_PRIVATE **outPrivate);
/* Table 35 - TPM2_CreateLoaded Command */
TSS2_RC
Esys_CreateLoaded(
ESYS_CONTEXT *esysContext,
ESYS_TR parentHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_SENSITIVE_CREATE *inSensitive,
const TPM2B_TEMPLATE *inPublic,
ESYS_TR *objectHandle,
TPM2B_PRIVATE **outPrivate,
TPM2B_PUBLIC **outPublic);
TSS2_RC
Esys_CreateLoaded_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR parentHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_SENSITIVE_CREATE *inSensitive,
const TPM2B_TEMPLATE *inPublic);
TSS2_RC
Esys_CreateLoaded_Finish(
ESYS_CONTEXT *esysContext,
ESYS_TR *objectHandle,
TPM2B_PRIVATE **outPrivate,
TPM2B_PUBLIC **outPublic);
/* Table 37 - TPM2_Duplicate Command */
TSS2_RC
Esys_Duplicate(
ESYS_CONTEXT *esysContext,
ESYS_TR objectHandle,
ESYS_TR newParentHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_DATA *encryptionKeyIn,
const TPMT_SYM_DEF_OBJECT *symmetricAlg,
TPM2B_DATA **encryptionKeyOut,
TPM2B_PRIVATE **duplicate,
TPM2B_ENCRYPTED_SECRET **outSymSeed);
TSS2_RC
Esys_Duplicate_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR objectHandle,
ESYS_TR newParentHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_DATA *encryptionKeyIn,
const TPMT_SYM_DEF_OBJECT *symmetricAlg);
TSS2_RC
Esys_Duplicate_Finish(
ESYS_CONTEXT *esysContext,
TPM2B_DATA **encryptionKeyOut,
TPM2B_PRIVATE **duplicate,
TPM2B_ENCRYPTED_SECRET **outSymSeed);
/* Table 39 - TPM2_Rewrap Command */
TSS2_RC
Esys_Rewrap(
ESYS_CONTEXT *esysContext,
ESYS_TR oldParent,
ESYS_TR newParent,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_PRIVATE *inDuplicate,
const TPM2B_NAME *name,
const TPM2B_ENCRYPTED_SECRET *inSymSeed,
TPM2B_PRIVATE **outDuplicate,
TPM2B_ENCRYPTED_SECRET **outSymSeed);
TSS2_RC
Esys_Rewrap_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR oldParent,
ESYS_TR newParent,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_PRIVATE *inDuplicate,
const TPM2B_NAME *name,
const TPM2B_ENCRYPTED_SECRET *inSymSeed);
TSS2_RC
Esys_Rewrap_Finish(
ESYS_CONTEXT *esysContext,
TPM2B_PRIVATE **outDuplicate,
TPM2B_ENCRYPTED_SECRET **outSymSeed);
/* Table 41 - TPM2_Import Command */
TSS2_RC
Esys_Import(
ESYS_CONTEXT *esysContext,
ESYS_TR parentHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_DATA *encryptionKey,
const TPM2B_PUBLIC *objectPublic,
const TPM2B_PRIVATE *duplicate,
const TPM2B_ENCRYPTED_SECRET *inSymSeed,
const TPMT_SYM_DEF_OBJECT *symmetricAlg,
TPM2B_PRIVATE **outPrivate);
TSS2_RC
Esys_Import_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR parentHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_DATA *encryptionKey,
const TPM2B_PUBLIC *objectPublic,
const TPM2B_PRIVATE *duplicate,
const TPM2B_ENCRYPTED_SECRET *inSymSeed,
const TPMT_SYM_DEF_OBJECT *symmetricAlg);
TSS2_RC
Esys_Import_Finish(
ESYS_CONTEXT *esysContext,
TPM2B_PRIVATE **outPrivate);
/* Table 45 - TPM2_RSA_Encrypt Command */
TSS2_RC
Esys_RSA_Encrypt(
ESYS_CONTEXT *esysContext,
ESYS_TR keyHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_PUBLIC_KEY_RSA *message,
const TPMT_RSA_DECRYPT *inScheme,
const TPM2B_DATA *label,
TPM2B_PUBLIC_KEY_RSA **outData);
TSS2_RC
Esys_RSA_Encrypt_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR keyHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_PUBLIC_KEY_RSA *message,
const TPMT_RSA_DECRYPT *inScheme,
const TPM2B_DATA *label);
TSS2_RC
Esys_RSA_Encrypt_Finish(
ESYS_CONTEXT *esysContext,
TPM2B_PUBLIC_KEY_RSA **outData);
/* Table 47 - TPM2_RSA_Decrypt Command */
TSS2_RC
Esys_RSA_Decrypt(
ESYS_CONTEXT *esysContext,
ESYS_TR keyHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_PUBLIC_KEY_RSA *cipherText,
const TPMT_RSA_DECRYPT *inScheme,
const TPM2B_DATA *label,
TPM2B_PUBLIC_KEY_RSA **message);
TSS2_RC
Esys_RSA_Decrypt_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR keyHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_PUBLIC_KEY_RSA *cipherText,
const TPMT_RSA_DECRYPT *inScheme,
const TPM2B_DATA *label);
TSS2_RC
Esys_RSA_Decrypt_Finish(
ESYS_CONTEXT *esysContext,
TPM2B_PUBLIC_KEY_RSA **message);
/* Table 49 - TPM2_ECDH_KeyGen Command */
TSS2_RC
Esys_ECDH_KeyGen(
ESYS_CONTEXT *esysContext,
ESYS_TR keyHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
TPM2B_ECC_POINT **zPoint,
TPM2B_ECC_POINT **pubPoint);
TSS2_RC
Esys_ECDH_KeyGen_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR keyHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3);
TSS2_RC
Esys_ECDH_KeyGen_Finish(
ESYS_CONTEXT *esysContext,
TPM2B_ECC_POINT **zPoint,
TPM2B_ECC_POINT **pubPoint);
/* Table 51 - TPM2_ECDH_ZGen Command */
TSS2_RC
Esys_ECDH_ZGen(
ESYS_CONTEXT *esysContext,
ESYS_TR keyHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_ECC_POINT *inPoint,
TPM2B_ECC_POINT **outPoint);
TSS2_RC
Esys_ECDH_ZGen_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR keyHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_ECC_POINT *inPoint);
TSS2_RC
Esys_ECDH_ZGen_Finish(
ESYS_CONTEXT *esysContext,
TPM2B_ECC_POINT **outPoint);
/* Table 53 - TPM2_ECC_Parameters Command */
TSS2_RC
Esys_ECC_Parameters(
ESYS_CONTEXT *esysContext,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
TPMI_ECC_CURVE curveID,
TPMS_ALGORITHM_DETAIL_ECC **parameters);
TSS2_RC
Esys_ECC_Parameters_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
TPMI_ECC_CURVE curveID);
TSS2_RC
Esys_ECC_Parameters_Finish(
ESYS_CONTEXT *esysContext,
TPMS_ALGORITHM_DETAIL_ECC **parameters);
/* Table 55 - TPM2_ZGen_2Phase Command */
TSS2_RC
Esys_ZGen_2Phase(
ESYS_CONTEXT *esysContext,
ESYS_TR keyA,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_ECC_POINT *inQsB,
const TPM2B_ECC_POINT *inQeB,
TPMI_ECC_KEY_EXCHANGE inScheme,
UINT16 counter,
TPM2B_ECC_POINT **outZ1,
TPM2B_ECC_POINT **outZ2);
TSS2_RC
Esys_ZGen_2Phase_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR keyA,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_ECC_POINT *inQsB,
const TPM2B_ECC_POINT *inQeB,
TPMI_ECC_KEY_EXCHANGE inScheme,
UINT16 counter);
TSS2_RC
Esys_ZGen_2Phase_Finish(
ESYS_CONTEXT *esysContext,
TPM2B_ECC_POINT **outZ1,
TPM2B_ECC_POINT **outZ2);
/* Table 58 - TPM2_EncryptDecrypt Command */
TSS2_RC
Esys_EncryptDecrypt(
ESYS_CONTEXT *esysContext,
ESYS_TR keyHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
TPMI_YES_NO decrypt,
TPMI_ALG_SYM_MODE mode,
const TPM2B_IV *ivIn,
const TPM2B_MAX_BUFFER *inData,
TPM2B_MAX_BUFFER **outData,
TPM2B_IV **ivOut);
TSS2_RC
Esys_EncryptDecrypt_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR keyHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
TPMI_YES_NO decrypt,
TPMI_ALG_SYM_MODE mode,
const TPM2B_IV *ivIn,
const TPM2B_MAX_BUFFER *inData);
TSS2_RC
Esys_EncryptDecrypt_Finish(
ESYS_CONTEXT *esysContext,
TPM2B_MAX_BUFFER **outData,
TPM2B_IV **ivOut);
/* Table 60 - TPM2_EncryptDecrypt2 Command */
TSS2_RC
Esys_EncryptDecrypt2(
ESYS_CONTEXT *esysContext,
ESYS_TR keyHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_MAX_BUFFER *inData,
TPMI_YES_NO decrypt,
TPMI_ALG_SYM_MODE mode,
const TPM2B_IV *ivIn,
TPM2B_MAX_BUFFER **outData,
TPM2B_IV **ivOut);
TSS2_RC
Esys_EncryptDecrypt2_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR keyHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_MAX_BUFFER *inData,
TPMI_YES_NO decrypt,
TPMI_ALG_SYM_MODE mode,
const TPM2B_IV *ivIn);
TSS2_RC
Esys_EncryptDecrypt2_Finish(
ESYS_CONTEXT *esysContext,
TPM2B_MAX_BUFFER **outData,
TPM2B_IV **ivOut);
/* Table 62 - TPM2_Hash Command */
TSS2_RC
Esys_Hash(
ESYS_CONTEXT *esysContext,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_MAX_BUFFER *data,
TPMI_ALG_HASH hashAlg,
TPMI_RH_HIERARCHY hierarchy,
TPM2B_DIGEST **outHash,
TPMT_TK_HASHCHECK **validation);
TSS2_RC
Esys_Hash_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_MAX_BUFFER *data,
TPMI_ALG_HASH hashAlg,
TPMI_RH_HIERARCHY hierarchy);
TSS2_RC
Esys_Hash_Finish(
ESYS_CONTEXT *esysContext,
TPM2B_DIGEST **outHash,
TPMT_TK_HASHCHECK **validation);
/* Table 64 - TPM2_HMAC Command */
TSS2_RC
Esys_HMAC(
ESYS_CONTEXT *esysContext,
ESYS_TR handle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_MAX_BUFFER *buffer,
TPMI_ALG_HASH hashAlg,
TPM2B_DIGEST **outHMAC);
TSS2_RC
Esys_HMAC_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR handle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_MAX_BUFFER *buffer,
TPMI_ALG_HASH hashAlg);
TSS2_RC
Esys_HMAC_Finish(
ESYS_CONTEXT *esysContext,
TPM2B_DIGEST **outHMAC);
/* Table 66 - TPM2_GetRandom Command */
TSS2_RC
Esys_GetRandom(
ESYS_CONTEXT *esysContext,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
UINT16 bytesRequested,
TPM2B_DIGEST **randomBytes);
TSS2_RC
Esys_GetRandom_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
UINT16 bytesRequested);
TSS2_RC
Esys_GetRandom_Finish(
ESYS_CONTEXT *esysContext,
TPM2B_DIGEST **randomBytes);
/* Table 68 - TPM2_StirRandom Command */
TSS2_RC
Esys_StirRandom(
ESYS_CONTEXT *esysContext,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_SENSITIVE_DATA *inData);
TSS2_RC
Esys_StirRandom_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_SENSITIVE_DATA *inData);
TSS2_RC
Esys_StirRandom_Finish(
ESYS_CONTEXT *esysContext);
/* Table 71 - TPM2_HMAC_Start Command */
TSS2_RC
Esys_HMAC_Start(
ESYS_CONTEXT *esysContext,
ESYS_TR handle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_AUTH *auth,
TPMI_ALG_HASH hashAlg,
ESYS_TR *sequenceHandle);
TSS2_RC
Esys_HMAC_Start_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR handle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_AUTH *auth,
TPMI_ALG_HASH hashAlg);
TSS2_RC
Esys_HMAC_Start_Finish(
ESYS_CONTEXT *esysContext,
ESYS_TR *sequenceHandle);
/* Table 73 - TPM2_HashSequenceStart Command */
TSS2_RC
Esys_HashSequenceStart(
ESYS_CONTEXT *esysContext,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_AUTH *auth,
TPMI_ALG_HASH hashAlg,
ESYS_TR *sequenceHandle);
TSS2_RC
Esys_HashSequenceStart_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_AUTH *auth,
TPMI_ALG_HASH hashAlg);
TSS2_RC
Esys_HashSequenceStart_Finish(
ESYS_CONTEXT *esysContext,
ESYS_TR *sequenceHandle);
/* Table 75 - TPM2_SequenceUpdate Command */
TSS2_RC
Esys_SequenceUpdate(
ESYS_CONTEXT *esysContext,
ESYS_TR sequenceHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_MAX_BUFFER *buffer);
TSS2_RC
Esys_SequenceUpdate_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR sequenceHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_MAX_BUFFER *buffer);
TSS2_RC
Esys_SequenceUpdate_Finish(
ESYS_CONTEXT *esysContext);
/* Table 77 - TPM2_SequenceComplete Command */
TSS2_RC
Esys_SequenceComplete(
ESYS_CONTEXT *esysContext,
ESYS_TR sequenceHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_MAX_BUFFER *buffer,
TPMI_RH_HIERARCHY hierarchy,
TPM2B_DIGEST **result,
TPMT_TK_HASHCHECK **validation);
TSS2_RC
Esys_SequenceComplete_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR sequenceHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_MAX_BUFFER *buffer,
TPMI_RH_HIERARCHY hierarchy);
TSS2_RC
Esys_SequenceComplete_Finish(
ESYS_CONTEXT *esysContext,
TPM2B_DIGEST **result,
TPMT_TK_HASHCHECK **validation);
/* Table 79 - TPM2_EventSequenceComplete Command */
TSS2_RC
Esys_EventSequenceComplete(
ESYS_CONTEXT *esysContext,
ESYS_TR pcrHandle,
ESYS_TR sequenceHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_MAX_BUFFER *buffer,
TPML_DIGEST_VALUES **results);
TSS2_RC
Esys_EventSequenceComplete_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR pcrHandle,
ESYS_TR sequenceHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_MAX_BUFFER *buffer);
TSS2_RC
Esys_EventSequenceComplete_Finish(
ESYS_CONTEXT *esysContext,
TPML_DIGEST_VALUES **results);
/* Table 81 - TPM2_Certify Command */
TSS2_RC
Esys_Certify(
ESYS_CONTEXT *esysContext,
ESYS_TR objectHandle,
ESYS_TR signHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_DATA *qualifyingData,
const TPMT_SIG_SCHEME *inScheme,
TPM2B_ATTEST **certifyInfo,
TPMT_SIGNATURE **signature);
TSS2_RC
Esys_Certify_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR objectHandle,
ESYS_TR signHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_DATA *qualifyingData,
const TPMT_SIG_SCHEME *inScheme);
TSS2_RC
Esys_Certify_Finish(
ESYS_CONTEXT *esysContext,
TPM2B_ATTEST **certifyInfo,
TPMT_SIGNATURE **signature);
/* Table 83 - TPM2_CertifyCreation Command */
TSS2_RC
Esys_CertifyCreation(
ESYS_CONTEXT *esysContext,
ESYS_TR signHandle,
ESYS_TR objectHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_DATA *qualifyingData,
const TPM2B_DIGEST *creationHash,
const TPMT_SIG_SCHEME *inScheme,
const TPMT_TK_CREATION *creationTicket,
TPM2B_ATTEST **certifyInfo,
TPMT_SIGNATURE **signature);
TSS2_RC
Esys_CertifyCreation_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR signHandle,
ESYS_TR objectHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_DATA *qualifyingData,
const TPM2B_DIGEST *creationHash,
const TPMT_SIG_SCHEME *inScheme,
const TPMT_TK_CREATION *creationTicket);
TSS2_RC
Esys_CertifyCreation_Finish(
ESYS_CONTEXT *esysContext,
TPM2B_ATTEST **certifyInfo,
TPMT_SIGNATURE **signature);
/* Table 85 - TPM2_Quote Command */
TSS2_RC
Esys_Quote(
ESYS_CONTEXT *esysContext,
ESYS_TR signHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_DATA *qualifyingData,
const TPMT_SIG_SCHEME *inScheme,
const TPML_PCR_SELECTION *PCRselect,
TPM2B_ATTEST **quoted,
TPMT_SIGNATURE **signature);
TSS2_RC
Esys_Quote_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR signHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_DATA *qualifyingData,
const TPMT_SIG_SCHEME *inScheme,
const TPML_PCR_SELECTION *PCRselect);
TSS2_RC
Esys_Quote_Finish(
ESYS_CONTEXT *esysContext,
TPM2B_ATTEST **quoted,
TPMT_SIGNATURE **signature);
/* Table 87 - TPM2_GetSessionAuditDigest Command */
TSS2_RC
Esys_GetSessionAuditDigest(
ESYS_CONTEXT *esysContext,
ESYS_TR privacyAdminHandle,
ESYS_TR signHandle,
ESYS_TR sessionHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_DATA *qualifyingData,
const TPMT_SIG_SCHEME *inScheme,
TPM2B_ATTEST **auditInfo,
TPMT_SIGNATURE **signature);
TSS2_RC
Esys_GetSessionAuditDigest_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR privacyAdminHandle,
ESYS_TR signHandle,
ESYS_TR sessionHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_DATA *qualifyingData,
const TPMT_SIG_SCHEME *inScheme);
TSS2_RC
Esys_GetSessionAuditDigest_Finish(
ESYS_CONTEXT *esysContext,
TPM2B_ATTEST **auditInfo,
TPMT_SIGNATURE **signature);
/* Table 89 - TPM2_GetCommandAuditDigest Command */
TSS2_RC
Esys_GetCommandAuditDigest(
ESYS_CONTEXT *esysContext,
ESYS_TR privacyHandle,
ESYS_TR signHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_DATA *qualifyingData,
const TPMT_SIG_SCHEME *inScheme,
TPM2B_ATTEST **auditInfo,
TPMT_SIGNATURE **signature);
TSS2_RC
Esys_GetCommandAuditDigest_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR privacyHandle,
ESYS_TR signHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_DATA *qualifyingData,
const TPMT_SIG_SCHEME *inScheme);
TSS2_RC
Esys_GetCommandAuditDigest_Finish(
ESYS_CONTEXT *esysContext,
TPM2B_ATTEST **auditInfo,
TPMT_SIGNATURE **signature);
/* Table 91 - TPM2_GetTime Command */
TSS2_RC
Esys_GetTime(
ESYS_CONTEXT *esysContext,
ESYS_TR privacyAdminHandle,
ESYS_TR signHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_DATA *qualifyingData,
const TPMT_SIG_SCHEME *inScheme,
TPM2B_ATTEST **timeInfo,
TPMT_SIGNATURE **signature);
TSS2_RC
Esys_GetTime_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR privacyAdminHandle,
ESYS_TR signHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_DATA *qualifyingData,
const TPMT_SIG_SCHEME *inScheme);
TSS2_RC
Esys_GetTime_Finish(
ESYS_CONTEXT *esysContext,
TPM2B_ATTEST **timeInfo,
TPMT_SIGNATURE **signature);
/* Table 93 - TPM2_Commit Command */
TSS2_RC
Esys_Commit(
ESYS_CONTEXT *esysContext,
ESYS_TR signHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_ECC_POINT *P1,
const TPM2B_SENSITIVE_DATA *s2,
const TPM2B_ECC_PARAMETER *y2,
TPM2B_ECC_POINT **K,
TPM2B_ECC_POINT **L,
TPM2B_ECC_POINT **E,
UINT16 *counter);
TSS2_RC
Esys_Commit_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR signHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_ECC_POINT *P1,
const TPM2B_SENSITIVE_DATA *s2,
const TPM2B_ECC_PARAMETER *y2);
TSS2_RC
Esys_Commit_Finish(
ESYS_CONTEXT *esysContext,
TPM2B_ECC_POINT **K,
TPM2B_ECC_POINT **L,
TPM2B_ECC_POINT **E,
UINT16 *counter);
/* Table 95 - TPM2_EC_Ephemeral Command */
TSS2_RC
Esys_EC_Ephemeral(
ESYS_CONTEXT *esysContext,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
TPMI_ECC_CURVE curveID,
TPM2B_ECC_POINT **Q,
UINT16 *counter);
TSS2_RC
Esys_EC_Ephemeral_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
TPMI_ECC_CURVE curveID);
TSS2_RC
Esys_EC_Ephemeral_Finish(
ESYS_CONTEXT *esysContext,
TPM2B_ECC_POINT **Q,
UINT16 *counter);
/* Table 97 - TPM2_VerifySignature Command */
TSS2_RC
Esys_VerifySignature(
ESYS_CONTEXT *esysContext,
ESYS_TR keyHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_DIGEST *digest,
const TPMT_SIGNATURE *signature,
TPMT_TK_VERIFIED **validation);
TSS2_RC
Esys_VerifySignature_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR keyHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_DIGEST *digest,
const TPMT_SIGNATURE *signature);
TSS2_RC
Esys_VerifySignature_Finish(
ESYS_CONTEXT *esysContext,
TPMT_TK_VERIFIED **validation);
/* Table 99 - TPM2_Sign Command */
TSS2_RC
Esys_Sign(
ESYS_CONTEXT *esysContext,
ESYS_TR keyHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_DIGEST *digest,
const TPMT_SIG_SCHEME *inScheme,
const TPMT_TK_HASHCHECK *validation,
TPMT_SIGNATURE **signature);
TSS2_RC
Esys_Sign_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR keyHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_DIGEST *digest,
const TPMT_SIG_SCHEME *inScheme,
const TPMT_TK_HASHCHECK *validation);
TSS2_RC
Esys_Sign_Finish(
ESYS_CONTEXT *esysContext,
TPMT_SIGNATURE **signature);
/* Table 101 - TPM2_SetCommandCodeAuditStatus Command */
TSS2_RC
Esys_SetCommandCodeAuditStatus(
ESYS_CONTEXT *esysContext,
ESYS_TR auth,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
TPMI_ALG_HASH auditAlg,
const TPML_CC *setList,
const TPML_CC *clearList);
TSS2_RC
Esys_SetCommandCodeAuditStatus_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR auth,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
TPMI_ALG_HASH auditAlg,
const TPML_CC *setList,
const TPML_CC *clearList);
TSS2_RC
Esys_SetCommandCodeAuditStatus_Finish(
ESYS_CONTEXT *esysContext);
/* Table 103 - TPM2_PCR_Extend Command */
TSS2_RC
Esys_PCR_Extend(
ESYS_CONTEXT *esysContext,
ESYS_TR pcrHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPML_DIGEST_VALUES *digests);
TSS2_RC
Esys_PCR_Extend_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR pcrHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPML_DIGEST_VALUES *digests);
TSS2_RC
Esys_PCR_Extend_Finish(
ESYS_CONTEXT *esysContext);
/* Table 105 - TPM2_PCR_Event Command */
TSS2_RC
Esys_PCR_Event(
ESYS_CONTEXT *esysContext,
ESYS_TR pcrHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_EVENT *eventData,
TPML_DIGEST_VALUES **digests);
TSS2_RC
Esys_PCR_Event_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR pcrHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_EVENT *eventData);
TSS2_RC
Esys_PCR_Event_Finish(
ESYS_CONTEXT *esysContext,
TPML_DIGEST_VALUES **digests);
/* Table 107 - TPM2_PCR_Read Command */
TSS2_RC
Esys_PCR_Read(
ESYS_CONTEXT *esysContext,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPML_PCR_SELECTION *pcrSelectionIn,
UINT32 *pcrUpdateCounter,
TPML_PCR_SELECTION **pcrSelectionOut,
TPML_DIGEST **pcrValues);
TSS2_RC
Esys_PCR_Read_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPML_PCR_SELECTION *pcrSelectionIn);
TSS2_RC
Esys_PCR_Read_Finish(
ESYS_CONTEXT *esysContext,
UINT32 *pcrUpdateCounter,
TPML_PCR_SELECTION **pcrSelectionOut,
TPML_DIGEST **pcrValues);
/* Table 109 - TPM2_PCR_Allocate Command */
TSS2_RC
Esys_PCR_Allocate(
ESYS_CONTEXT *esysContext,
ESYS_TR authHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPML_PCR_SELECTION *pcrAllocation,
TPMI_YES_NO *allocationSuccess,
UINT32 *maxPCR,
UINT32 *sizeNeeded,
UINT32 *sizeAvailable);
TSS2_RC
Esys_PCR_Allocate_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR authHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPML_PCR_SELECTION *pcrAllocation);
TSS2_RC
Esys_PCR_Allocate_Finish(
ESYS_CONTEXT *esysContext,
TPMI_YES_NO *allocationSuccess,
UINT32 *maxPCR,
UINT32 *sizeNeeded,
UINT32 *sizeAvailable);
/* Table 111 - TPM2_PCR_SetAuthPolicy Command */
TSS2_RC
Esys_PCR_SetAuthPolicy(
ESYS_CONTEXT *esysContext,
ESYS_TR authHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_DIGEST *authPolicy,
TPMI_ALG_HASH hashAlg,
TPMI_DH_PCR pcrNum);
TSS2_RC
Esys_PCR_SetAuthPolicy_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR authHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_DIGEST *authPolicy,
TPMI_ALG_HASH hashAlg,
TPMI_DH_PCR pcrNum);
TSS2_RC
Esys_PCR_SetAuthPolicy_Finish(
ESYS_CONTEXT *esysContext);
/* Table 113 - TPM2_PCR_SetAuthValue Command */
TSS2_RC
Esys_PCR_SetAuthValue(
ESYS_CONTEXT *esysContext,
ESYS_TR pcrHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_DIGEST *auth);
TSS2_RC
Esys_PCR_SetAuthValue_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR pcrHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_DIGEST *auth);
TSS2_RC
Esys_PCR_SetAuthValue_Finish(
ESYS_CONTEXT *esysContext);
/* Table 115 - TPM2_PCR_Reset Command */
TSS2_RC
Esys_PCR_Reset(
ESYS_CONTEXT *esysContext,
ESYS_TR pcrHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3);
TSS2_RC
Esys_PCR_Reset_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR pcrHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3);
TSS2_RC
Esys_PCR_Reset_Finish(
ESYS_CONTEXT *esysContext);
/* Table 117 - TPM2_PolicySigned Command */
TSS2_RC
Esys_PolicySigned(
ESYS_CONTEXT *esysContext,
ESYS_TR authObject,
ESYS_TR policySession,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_NONCE *nonceTPM,
const TPM2B_DIGEST *cpHashA,
const TPM2B_NONCE *policyRef,
INT32 expiration,
const TPMT_SIGNATURE *auth,
TPM2B_TIMEOUT **timeout,
TPMT_TK_AUTH **policyTicket);
TSS2_RC
Esys_PolicySigned_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR authObject,
ESYS_TR policySession,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_NONCE *nonceTPM,
const TPM2B_DIGEST *cpHashA,
const TPM2B_NONCE *policyRef,
INT32 expiration,
const TPMT_SIGNATURE *auth);
TSS2_RC
Esys_PolicySigned_Finish(
ESYS_CONTEXT *esysContext,
TPM2B_TIMEOUT **timeout,
TPMT_TK_AUTH **policyTicket);
/* Table 119 - TPM2_PolicySecret Command */
TSS2_RC
Esys_PolicySecret(
ESYS_CONTEXT *esysContext,
ESYS_TR authHandle,
ESYS_TR policySession,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_NONCE *nonceTPM,
const TPM2B_DIGEST *cpHashA,
const TPM2B_NONCE *policyRef,
INT32 expiration,
TPM2B_TIMEOUT **timeout,
TPMT_TK_AUTH **policyTicket);
TSS2_RC
Esys_PolicySecret_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR authHandle,
ESYS_TR policySession,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_NONCE *nonceTPM,
const TPM2B_DIGEST *cpHashA,
const TPM2B_NONCE *policyRef,
INT32 expiration);
TSS2_RC
Esys_PolicySecret_Finish(
ESYS_CONTEXT *esysContext,
TPM2B_TIMEOUT **timeout,
TPMT_TK_AUTH **policyTicket);
/* Table 121 - TPM2_PolicyTicket Command */
TSS2_RC
Esys_PolicyTicket(
ESYS_CONTEXT *esysContext,
ESYS_TR policySession,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_TIMEOUT *timeout,
const TPM2B_DIGEST *cpHashA,
const TPM2B_NONCE *policyRef,
const TPM2B_NAME *authName,
const TPMT_TK_AUTH *ticket);
TSS2_RC
Esys_PolicyTicket_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR policySession,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_TIMEOUT *timeout,
const TPM2B_DIGEST *cpHashA,
const TPM2B_NONCE *policyRef,
const TPM2B_NAME *authName,
const TPMT_TK_AUTH *ticket);
TSS2_RC
Esys_PolicyTicket_Finish(
ESYS_CONTEXT *esysContext);
/* Table 123 - TPM2_PolicyOR Command */
TSS2_RC
Esys_PolicyOR(
ESYS_CONTEXT *esysContext,
ESYS_TR policySession,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPML_DIGEST *pHashList);
TSS2_RC
Esys_PolicyOR_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR policySession,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPML_DIGEST *pHashList);
TSS2_RC
Esys_PolicyOR_Finish(
ESYS_CONTEXT *esysContext);
/* Table 125 - TPM2_PolicyPCR Command */
TSS2_RC
Esys_PolicyPCR(
ESYS_CONTEXT *esysContext,
ESYS_TR policySession,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_DIGEST *pcrDigest,
const TPML_PCR_SELECTION *pcrs);
TSS2_RC
Esys_PolicyPCR_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR policySession,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_DIGEST *pcrDigest,
const TPML_PCR_SELECTION *pcrs);
TSS2_RC
Esys_PolicyPCR_Finish(
ESYS_CONTEXT *esysContext);
/* Table 127 - TPM2_PolicyLocality Command */
TSS2_RC
Esys_PolicyLocality(
ESYS_CONTEXT *esysContext,
ESYS_TR policySession,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
TPMA_LOCALITY locality);
TSS2_RC
Esys_PolicyLocality_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR policySession,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
TPMA_LOCALITY locality);
TSS2_RC
Esys_PolicyLocality_Finish(
ESYS_CONTEXT *esysContext);
/* Table 129 - TPM2_PolicyNV Command */
TSS2_RC
Esys_PolicyNV(
ESYS_CONTEXT *esysContext,
ESYS_TR authHandle,
ESYS_TR nvIndex,
ESYS_TR policySession,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_OPERAND *operandB,
UINT16 offset,
TPM2_EO operation);
TSS2_RC
Esys_PolicyNV_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR authHandle,
ESYS_TR nvIndex,
ESYS_TR policySession,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_OPERAND *operandB,
UINT16 offset,
TPM2_EO operation);
TSS2_RC
Esys_PolicyNV_Finish(
ESYS_CONTEXT *esysContext);
/* Table 131 - TPM2_PolicyCounterTimer Command */
TSS2_RC
Esys_PolicyCounterTimer(
ESYS_CONTEXT *esysContext,
ESYS_TR policySession,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_OPERAND *operandB,
UINT16 offset,
TPM2_EO operation);
TSS2_RC
Esys_PolicyCounterTimer_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR policySession,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_OPERAND *operandB,
UINT16 offset,
TPM2_EO operation);
TSS2_RC
Esys_PolicyCounterTimer_Finish(
ESYS_CONTEXT *esysContext);
/* Table 133 - TPM2_PolicyCommandCode Command */
TSS2_RC
Esys_PolicyCommandCode(
ESYS_CONTEXT *esysContext,
ESYS_TR policySession,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
TPM2_CC code);
TSS2_RC
Esys_PolicyCommandCode_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR policySession,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
TPM2_CC code);
TSS2_RC
Esys_PolicyCommandCode_Finish(
ESYS_CONTEXT *esysContext);
/* Table 135 - TPM2_PolicyPhysicalPresence Command */
TSS2_RC
Esys_PolicyPhysicalPresence(
ESYS_CONTEXT *esysContext,
ESYS_TR policySession,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3);
TSS2_RC
Esys_PolicyPhysicalPresence_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR policySession,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3);
TSS2_RC
Esys_PolicyPhysicalPresence_Finish(
ESYS_CONTEXT *esysContext);
/* Table 137 - TPM2_PolicyCpHash Command */
TSS2_RC
Esys_PolicyCpHash(
ESYS_CONTEXT *esysContext,
ESYS_TR policySession,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_DIGEST *cpHashA);
TSS2_RC
Esys_PolicyCpHash_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR policySession,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_DIGEST *cpHashA);
TSS2_RC
Esys_PolicyCpHash_Finish(
ESYS_CONTEXT *esysContext);
/* Table 139 - TPM2_PolicyNameHash Command */
TSS2_RC
Esys_PolicyNameHash(
ESYS_CONTEXT *esysContext,
ESYS_TR policySession,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_DIGEST *nameHash);
TSS2_RC
Esys_PolicyNameHash_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR policySession,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_DIGEST *nameHash);
TSS2_RC
Esys_PolicyNameHash_Finish(
ESYS_CONTEXT *esysContext);
/* Table 141 - TPM2_PolicyDuplicationSelect Command */
TSS2_RC
Esys_PolicyDuplicationSelect(
ESYS_CONTEXT *esysContext,
ESYS_TR policySession,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_NAME *objectName,
const TPM2B_NAME *newParentName,
TPMI_YES_NO includeObject);
TSS2_RC
Esys_PolicyDuplicationSelect_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR policySession,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_NAME *objectName,
const TPM2B_NAME *newParentName,
TPMI_YES_NO includeObject);
TSS2_RC
Esys_PolicyDuplicationSelect_Finish(
ESYS_CONTEXT *esysContext);
/* Table 143 - TPM2_PolicyAuthorize Command */
TSS2_RC
Esys_PolicyAuthorize(
ESYS_CONTEXT *esysContext,
ESYS_TR policySession,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_DIGEST *approvedPolicy,
const TPM2B_NONCE *policyRef,
const TPM2B_NAME *keySign,
const TPMT_TK_VERIFIED *checkTicket);
TSS2_RC
Esys_PolicyAuthorize_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR policySession,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_DIGEST *approvedPolicy,
const TPM2B_NONCE *policyRef,
const TPM2B_NAME *keySign,
const TPMT_TK_VERIFIED *checkTicket);
TSS2_RC
Esys_PolicyAuthorize_Finish(
ESYS_CONTEXT *esysContext);
/* Table 145 - TPM2_PolicyAuthValue Command */
TSS2_RC
Esys_PolicyAuthValue(
ESYS_CONTEXT *esysContext,
ESYS_TR policySession,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3);
TSS2_RC
Esys_PolicyAuthValue_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR policySession,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3);
TSS2_RC
Esys_PolicyAuthValue_Finish(
ESYS_CONTEXT *esysContext);
/* Table 147 - TPM2_PolicyPassword Command */
TSS2_RC
Esys_PolicyPassword(
ESYS_CONTEXT *esysContext,
ESYS_TR policySession,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3);
TSS2_RC
Esys_PolicyPassword_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR policySession,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3);
TSS2_RC
Esys_PolicyPassword_Finish(
ESYS_CONTEXT *esysContext);
/* Table 149 - TPM2_PolicyGetDigest Command */
TSS2_RC
Esys_PolicyGetDigest(
ESYS_CONTEXT *esysContext,
ESYS_TR policySession,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
TPM2B_DIGEST **policyDigest);
TSS2_RC
Esys_PolicyGetDigest_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR policySession,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3);
TSS2_RC
Esys_PolicyGetDigest_Finish(
ESYS_CONTEXT *esysContext,
TPM2B_DIGEST **policyDigest);
/* Table 151 - TPM2_PolicyNvWritten Command */
TSS2_RC
Esys_PolicyNvWritten(
ESYS_CONTEXT *esysContext,
ESYS_TR policySession,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
TPMI_YES_NO writtenSet);
TSS2_RC
Esys_PolicyNvWritten_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR policySession,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
TPMI_YES_NO writtenSet);
TSS2_RC
Esys_PolicyNvWritten_Finish(
ESYS_CONTEXT *esysContext);
/* Table 153 - TPM2_PolicyTemplate Command */
TSS2_RC
Esys_PolicyTemplate(
ESYS_CONTEXT *esysContext,
ESYS_TR policySession,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_DIGEST *templateHash);
TSS2_RC
Esys_PolicyTemplate_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR policySession,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_DIGEST *templateHash);
TSS2_RC
Esys_PolicyTemplate_Finish(
ESYS_CONTEXT *esysContext);
/* Table 155 - TPM2_PolicyAuthorizeNV Command */
TSS2_RC
Esys_PolicyAuthorizeNV(
ESYS_CONTEXT *esysContext,
ESYS_TR authHandle,
ESYS_TR nvIndex,
ESYS_TR policySession,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3);
TSS2_RC
Esys_PolicyAuthorizeNV_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR authHandle,
ESYS_TR nvIndex,
ESYS_TR policySession,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3);
TSS2_RC
Esys_PolicyAuthorizeNV_Finish(
ESYS_CONTEXT *esysContext);
/* Table 157 - TPM2_CreatePrimary Command */
TSS2_RC
Esys_CreatePrimary(
ESYS_CONTEXT *esysContext,
ESYS_TR primaryHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_SENSITIVE_CREATE *inSensitive,
const TPM2B_PUBLIC *inPublic,
const TPM2B_DATA *outsideInfo,
const TPML_PCR_SELECTION *creationPCR,
ESYS_TR *objectHandle,
TPM2B_PUBLIC **outPublic,
TPM2B_CREATION_DATA **creationData,
TPM2B_DIGEST **creationHash,
TPMT_TK_CREATION **creationTicket);
TSS2_RC
Esys_CreatePrimary_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR primaryHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_SENSITIVE_CREATE *inSensitive,
const TPM2B_PUBLIC *inPublic,
const TPM2B_DATA *outsideInfo,
const TPML_PCR_SELECTION *creationPCR);
TSS2_RC
Esys_CreatePrimary_Finish(
ESYS_CONTEXT *esysContext,
ESYS_TR *objectHandle,
TPM2B_PUBLIC **outPublic,
TPM2B_CREATION_DATA **creationData,
TPM2B_DIGEST **creationHash,
TPMT_TK_CREATION **creationTicket);
/* Table 159 - TPM2_HierarchyControl Command */
TSS2_RC
Esys_HierarchyControl(
ESYS_CONTEXT *esysContext,
ESYS_TR authHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
TPMI_RH_ENABLES enable,
TPMI_YES_NO state);
TSS2_RC
Esys_HierarchyControl_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR authHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
TPMI_RH_ENABLES enable,
TPMI_YES_NO state);
TSS2_RC
Esys_HierarchyControl_Finish(
ESYS_CONTEXT *esysContext);
/* Table 161 - TPM2_SetPrimaryPolicy Command */
TSS2_RC
Esys_SetPrimaryPolicy(
ESYS_CONTEXT *esysContext,
ESYS_TR authHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_DIGEST *authPolicy,
TPMI_ALG_HASH hashAlg);
TSS2_RC
Esys_SetPrimaryPolicy_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR authHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_DIGEST *authPolicy,
TPMI_ALG_HASH hashAlg);
TSS2_RC
Esys_SetPrimaryPolicy_Finish(
ESYS_CONTEXT *esysContext);
/* Table 163 - TPM2_ChangePPS Command */
TSS2_RC
Esys_ChangePPS(
ESYS_CONTEXT *esysContext,
ESYS_TR authHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3);
TSS2_RC
Esys_ChangePPS_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR authHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3);
TSS2_RC
Esys_ChangePPS_Finish(
ESYS_CONTEXT *esysContext);
/* Table 165 - TPM2_ChangeEPS Command */
TSS2_RC
Esys_ChangeEPS(
ESYS_CONTEXT *esysContext,
ESYS_TR authHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3);
TSS2_RC
Esys_ChangeEPS_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR authHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3);
TSS2_RC
Esys_ChangeEPS_Finish(
ESYS_CONTEXT *esysContext);
/* Table 167 - TPM2_Clear Command */
TSS2_RC
Esys_Clear(
ESYS_CONTEXT *esysContext,
ESYS_TR authHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3);
TSS2_RC
Esys_Clear_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR authHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3);
TSS2_RC
Esys_Clear_Finish(
ESYS_CONTEXT *esysContext);
/* Table 169 - TPM2_ClearControl Command */
TSS2_RC
Esys_ClearControl(
ESYS_CONTEXT *esysContext,
ESYS_TR auth,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
TPMI_YES_NO disable);
TSS2_RC
Esys_ClearControl_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR auth,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
TPMI_YES_NO disable);
TSS2_RC
Esys_ClearControl_Finish(
ESYS_CONTEXT *esysContext);
/* Table 171 - TPM2_HierarchyChangeAuth Command */
TSS2_RC
Esys_HierarchyChangeAuth(
ESYS_CONTEXT *esysContext,
ESYS_TR authHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_AUTH *newAuth);
TSS2_RC
Esys_HierarchyChangeAuth_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR authHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_AUTH *newAuth);
TSS2_RC
Esys_HierarchyChangeAuth_Finish(
ESYS_CONTEXT *esysContext);
/* Table 173 - TPM2_DictionaryAttackLockReset Command */
TSS2_RC
Esys_DictionaryAttackLockReset(
ESYS_CONTEXT *esysContext,
ESYS_TR lockHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3);
TSS2_RC
Esys_DictionaryAttackLockReset_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR lockHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3);
TSS2_RC
Esys_DictionaryAttackLockReset_Finish(
ESYS_CONTEXT *esysContext);
/* Table 175 - TPM2_DictionaryAttackParameters Command */
TSS2_RC
Esys_DictionaryAttackParameters(
ESYS_CONTEXT *esysContext,
ESYS_TR lockHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
UINT32 newMaxTries,
UINT32 newRecoveryTime,
UINT32 lockoutRecovery);
TSS2_RC
Esys_DictionaryAttackParameters_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR lockHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
UINT32 newMaxTries,
UINT32 newRecoveryTime,
UINT32 lockoutRecovery);
TSS2_RC
Esys_DictionaryAttackParameters_Finish(
ESYS_CONTEXT *esysContext);
/* Table 177 - TPM2_PP_Commands Command */
TSS2_RC
Esys_PP_Commands(
ESYS_CONTEXT *esysContext,
ESYS_TR auth,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPML_CC *setList,
const TPML_CC *clearList);
TSS2_RC
Esys_PP_Commands_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR auth,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPML_CC *setList,
const TPML_CC *clearList);
TSS2_RC
Esys_PP_Commands_Finish(
ESYS_CONTEXT *esysContext);
/* Table 179 - TPM2_SetAlgorithmSet Command */
TSS2_RC
Esys_SetAlgorithmSet(
ESYS_CONTEXT *esysContext,
ESYS_TR authHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
UINT32 algorithmSet);
TSS2_RC
Esys_SetAlgorithmSet_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR authHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
UINT32 algorithmSet);
TSS2_RC
Esys_SetAlgorithmSet_Finish(
ESYS_CONTEXT *esysContext);
/* Table 181 - TPM2_FieldUpgradeStart Command */
TSS2_RC
Esys_FieldUpgradeStart(
ESYS_CONTEXT *esysContext,
ESYS_TR authorization,
ESYS_TR keyHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_DIGEST *fuDigest,
const TPMT_SIGNATURE *manifestSignature);
TSS2_RC
Esys_FieldUpgradeStart_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR authorization,
ESYS_TR keyHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_DIGEST *fuDigest,
const TPMT_SIGNATURE *manifestSignature);
TSS2_RC
Esys_FieldUpgradeStart_Finish(
ESYS_CONTEXT *esysContext);
/* Table 183 - TPM2_FieldUpgradeData Command */
TSS2_RC
Esys_FieldUpgradeData(
ESYS_CONTEXT *esysContext,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_MAX_BUFFER *fuData,
TPMT_HA **nextDigest,
TPMT_HA **firstDigest);
TSS2_RC
Esys_FieldUpgradeData_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_MAX_BUFFER *fuData);
TSS2_RC
Esys_FieldUpgradeData_Finish(
ESYS_CONTEXT *esysContext,
TPMT_HA **nextDigest,
TPMT_HA **firstDigest);
/* Table 185 - TPM2_FirmwareRead Command */
TSS2_RC
Esys_FirmwareRead(
ESYS_CONTEXT *esysContext,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
UINT32 sequenceNumber,
TPM2B_MAX_BUFFER **fuData);
TSS2_RC
Esys_FirmwareRead_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
UINT32 sequenceNumber);
TSS2_RC
Esys_FirmwareRead_Finish(
ESYS_CONTEXT *esysContext,
TPM2B_MAX_BUFFER **fuData);
/* Table 187 - TPM2_ContextSave Command */
TSS2_RC
Esys_ContextSave(
ESYS_CONTEXT *esysContext,
ESYS_TR saveHandle,
TPMS_CONTEXT **context);
TSS2_RC
Esys_ContextSave_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR saveHandle);
TSS2_RC
Esys_ContextSave_Finish(
ESYS_CONTEXT *esysContext,
TPMS_CONTEXT **context);
/* Table 189 - TPM2_ContextLoad Command */
TSS2_RC
Esys_ContextLoad(
ESYS_CONTEXT *esysContext,
const TPMS_CONTEXT *context,
ESYS_TR *loadedHandle);
TSS2_RC
Esys_ContextLoad_Async(
ESYS_CONTEXT *esysContext,
const TPMS_CONTEXT *context);
TSS2_RC
Esys_ContextLoad_Finish(
ESYS_CONTEXT *esysContext,
ESYS_TR *loadedHandle);
/* Table 191 - TPM2_FlushContext Command */
TSS2_RC
Esys_FlushContext(
ESYS_CONTEXT *esysContext,
ESYS_TR flushHandle);
TSS2_RC
Esys_FlushContext_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR flushHandle);
TSS2_RC
Esys_FlushContext_Finish(
ESYS_CONTEXT *esysContext);
/* Table 193 - TPM2_EvictControl Command */
TSS2_RC
Esys_EvictControl(
ESYS_CONTEXT *esysContext,
ESYS_TR auth,
ESYS_TR objectHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
TPMI_DH_PERSISTENT persistentHandle,
ESYS_TR *newObjectHandle);
TSS2_RC
Esys_EvictControl_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR auth,
ESYS_TR objectHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
TPMI_DH_PERSISTENT persistentHandle);
TSS2_RC
Esys_EvictControl_Finish(
ESYS_CONTEXT *esysContext,
ESYS_TR *newObjectHandle);
/* Table 195 - TPM2_ReadClock Command */
TSS2_RC
Esys_ReadClock(
ESYS_CONTEXT *esysContext,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
TPMS_TIME_INFO **currentTime);
TSS2_RC
Esys_ReadClock_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3);
TSS2_RC
Esys_ReadClock_Finish(
ESYS_CONTEXT *esysContext,
TPMS_TIME_INFO **currentTime);
/* Table 197 - TPM2_ClockSet Command */
TSS2_RC
Esys_ClockSet(
ESYS_CONTEXT *esysContext,
ESYS_TR auth,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
UINT64 newTime);
TSS2_RC
Esys_ClockSet_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR auth,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
UINT64 newTime);
TSS2_RC
Esys_ClockSet_Finish(
ESYS_CONTEXT *esysContext);
/* Table 199 - TPM2_ClockRateAdjust Command */
TSS2_RC
Esys_ClockRateAdjust(
ESYS_CONTEXT *esysContext,
ESYS_TR auth,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
TPM2_CLOCK_ADJUST rateAdjust);
TSS2_RC
Esys_ClockRateAdjust_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR auth,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
TPM2_CLOCK_ADJUST rateAdjust);
TSS2_RC
Esys_ClockRateAdjust_Finish(
ESYS_CONTEXT *esysContext);
/* Table 201 - TPM2_GetCapability Command */
TSS2_RC
Esys_GetCapability(
ESYS_CONTEXT *esysContext,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
TPM2_CAP capability,
UINT32 property,
UINT32 propertyCount,
TPMI_YES_NO *moreData,
TPMS_CAPABILITY_DATA **capabilityData);
TSS2_RC
Esys_GetCapability_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
TPM2_CAP capability,
UINT32 property,
UINT32 propertyCount);
TSS2_RC
Esys_GetCapability_Finish(
ESYS_CONTEXT *esysContext,
TPMI_YES_NO *moreData,
TPMS_CAPABILITY_DATA **capabilityData);
/* Table 203 - TPM2_TestParms Command */
TSS2_RC
Esys_TestParms(
ESYS_CONTEXT *esysContext,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPMT_PUBLIC_PARMS *parameters);
TSS2_RC
Esys_TestParms_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPMT_PUBLIC_PARMS *parameters);
TSS2_RC
Esys_TestParms_Finish(
ESYS_CONTEXT *esysContext);
/* Table 205 - TPM2_NV_DefineSpace Command */
TSS2_RC
Esys_NV_DefineSpace(
ESYS_CONTEXT *esysContext,
ESYS_TR authHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_AUTH *auth,
const TPM2B_NV_PUBLIC *publicInfo,
ESYS_TR *nvHandle);
TSS2_RC
Esys_NV_DefineSpace_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR authHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_AUTH *auth,
const TPM2B_NV_PUBLIC *publicInfo);
TSS2_RC
Esys_NV_DefineSpace_Finish(
ESYS_CONTEXT *esysContext,
ESYS_TR *nvHandle);
/* Table 207 - TPM2_NV_UndefineSpace Command */
TSS2_RC
Esys_NV_UndefineSpace(
ESYS_CONTEXT *esysContext,
ESYS_TR authHandle,
ESYS_TR nvIndex,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3);
TSS2_RC
Esys_NV_UndefineSpace_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR authHandle,
ESYS_TR nvIndex,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3);
TSS2_RC
Esys_NV_UndefineSpace_Finish(
ESYS_CONTEXT *esysContext);
/* Table 209 - TPM2_NV_UndefineSpaceSpecial Command */
TSS2_RC
Esys_NV_UndefineSpaceSpecial(
ESYS_CONTEXT *esysContext,
ESYS_TR nvIndex,
ESYS_TR platform,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3);
TSS2_RC
Esys_NV_UndefineSpaceSpecial_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR nvIndex,
ESYS_TR platform,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3);
TSS2_RC
Esys_NV_UndefineSpaceSpecial_Finish(
ESYS_CONTEXT *esysContext);
/* Table 211 - TPM2_NV_ReadPublic Command */
TSS2_RC
Esys_NV_ReadPublic(
ESYS_CONTEXT *esysContext,
ESYS_TR nvIndex,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
TPM2B_NV_PUBLIC **nvPublic,
TPM2B_NAME **nvName);
TSS2_RC
Esys_NV_ReadPublic_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR nvIndex,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3);
TSS2_RC
Esys_NV_ReadPublic_Finish(
ESYS_CONTEXT *esysContext,
TPM2B_NV_PUBLIC **nvPublic,
TPM2B_NAME **nvName);
/* Table 213 - TPM2_NV_Write Command */
TSS2_RC
Esys_NV_Write(
ESYS_CONTEXT *esysContext,
ESYS_TR authHandle,
ESYS_TR nvIndex,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_MAX_NV_BUFFER *data,
UINT16 offset);
TSS2_RC
Esys_NV_Write_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR authHandle,
ESYS_TR nvIndex,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_MAX_NV_BUFFER *data,
UINT16 offset);
TSS2_RC
Esys_NV_Write_Finish(
ESYS_CONTEXT *esysContext);
/* Table 215 - TPM2_NV_Increment Command */
TSS2_RC
Esys_NV_Increment(
ESYS_CONTEXT *esysContext,
ESYS_TR authHandle,
ESYS_TR nvIndex,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3);
TSS2_RC
Esys_NV_Increment_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR authHandle,
ESYS_TR nvIndex,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3);
TSS2_RC
Esys_NV_Increment_Finish(
ESYS_CONTEXT *esysContext);
/* Table 217 - TPM2_NV_Extend Command */
TSS2_RC
Esys_NV_Extend(
ESYS_CONTEXT *esysContext,
ESYS_TR authHandle,
ESYS_TR nvIndex,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_MAX_NV_BUFFER *data);
TSS2_RC
Esys_NV_Extend_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR authHandle,
ESYS_TR nvIndex,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_MAX_NV_BUFFER *data);
TSS2_RC
Esys_NV_Extend_Finish(
ESYS_CONTEXT *esysContext);
/* Table 219 - TPM2_NV_SetBits Command */
TSS2_RC
Esys_NV_SetBits(
ESYS_CONTEXT *esysContext,
ESYS_TR authHandle,
ESYS_TR nvIndex,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
UINT64 bits);
TSS2_RC
Esys_NV_SetBits_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR authHandle,
ESYS_TR nvIndex,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
UINT64 bits);
TSS2_RC
Esys_NV_SetBits_Finish(
ESYS_CONTEXT *esysContext);
/* Table 221 - TPM2_NV_WriteLock Command */
TSS2_RC
Esys_NV_WriteLock(
ESYS_CONTEXT *esysContext,
ESYS_TR authHandle,
ESYS_TR nvIndex,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3);
TSS2_RC
Esys_NV_WriteLock_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR authHandle,
ESYS_TR nvIndex,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3);
TSS2_RC
Esys_NV_WriteLock_Finish(
ESYS_CONTEXT *esysContext);
/* Table 223 - TPM2_NV_GlobalWriteLock Command */
TSS2_RC
Esys_NV_GlobalWriteLock(
ESYS_CONTEXT *esysContext,
ESYS_TR authHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3);
TSS2_RC
Esys_NV_GlobalWriteLock_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR authHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3);
TSS2_RC
Esys_NV_GlobalWriteLock_Finish(
ESYS_CONTEXT *esysContext);
/* Table 225 - TPM2_NV_Read Command */
TSS2_RC
Esys_NV_Read(
ESYS_CONTEXT *esysContext,
ESYS_TR authHandle,
ESYS_TR nvIndex,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
UINT16 size,
UINT16 offset,
TPM2B_MAX_NV_BUFFER **data);
TSS2_RC
Esys_NV_Read_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR authHandle,
ESYS_TR nvIndex,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
UINT16 size,
UINT16 offset);
TSS2_RC
Esys_NV_Read_Finish(
ESYS_CONTEXT *esysContext,
TPM2B_MAX_NV_BUFFER **data);
/* Table 227 - TPM2_NV_ReadLock Command */
TSS2_RC
Esys_NV_ReadLock(
ESYS_CONTEXT *esysContext,
ESYS_TR authHandle,
ESYS_TR nvIndex,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3);
TSS2_RC
Esys_NV_ReadLock_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR authHandle,
ESYS_TR nvIndex,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3);
TSS2_RC
Esys_NV_ReadLock_Finish(
ESYS_CONTEXT *esysContext);
/* Table 229 - TPM2_NV_ChangeAuth Command */
TSS2_RC
Esys_NV_ChangeAuth(
ESYS_CONTEXT *esysContext,
ESYS_TR nvIndex,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_AUTH *newAuth);
TSS2_RC
Esys_NV_ChangeAuth_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR nvIndex,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_AUTH *newAuth);
TSS2_RC
Esys_NV_ChangeAuth_Finish(
ESYS_CONTEXT *esysContext);
/* Table 231 - TPM2_NV_Certify Command */
TSS2_RC
Esys_NV_Certify(
ESYS_CONTEXT *esysContext,
ESYS_TR signHandle,
ESYS_TR authHandle,
ESYS_TR nvIndex,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_DATA *qualifyingData,
const TPMT_SIG_SCHEME *inScheme,
UINT16 size,
UINT16 offset,
TPM2B_ATTEST **certifyInfo,
TPMT_SIGNATURE **signature);
TSS2_RC
Esys_NV_Certify_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR signHandle,
ESYS_TR authHandle,
ESYS_TR nvIndex,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_DATA *qualifyingData,
const TPMT_SIG_SCHEME *inScheme,
UINT16 size,
UINT16 offset);
TSS2_RC
Esys_NV_Certify_Finish(
ESYS_CONTEXT *esysContext,
TPM2B_ATTEST **certifyInfo,
TPMT_SIGNATURE **signature);
/* Table 233 - TPM2_Vendor_TCG_Test Command */
TSS2_RC
Esys_Vendor_TCG_Test(
ESYS_CONTEXT *esysContext,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_DATA *inputData,
TPM2B_DATA **outputData);
TSS2_RC
Esys_Vendor_TCG_Test_Async(
ESYS_CONTEXT *esysContext,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
const TPM2B_DATA *inputData);
TSS2_RC
Esys_Vendor_TCG_Test_Finish(
ESYS_CONTEXT *esysContext,
TPM2B_DATA **outputData);
/*
* TPM 2.0 ESAPI Helper Functions
*/
void
Esys_Free(
void *__ptr);
TSS2_RC
Esys_GetSysContext(
ESYS_CONTEXT *esys_context,
TSS2_SYS_CONTEXT **sys_context);
#ifdef __cplusplus
}
#endif
#endif /* TSS2_ESYS_H */