/* * Copyright 2015 The Chromium OS Authors. All rights reserved. * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #ifndef __TPM2_PCR_FP_H #define __TPM2_PCR_FP_H TPM_RC PCRAllocate(TPML_PCR_SELECTION *allocate, // IN: required allocation UINT32 *maxPCR, // OUT: Maximum number of PCR UINT32 *sizeNeeded, // OUT: required space UINT32 *sizeAvailable // OUT: available space ); BOOL PCRBelongsAuthGroup(TPMI_DH_PCR handle, // IN: handle of PCR UINT32 *groupIndex // OUT: group index if PCR belongs // a group that allows authValue. // If PCR does not belong to an // auth group, the value in this // parameter is invalid ); BOOL PCRBelongsPolicyGroup(TPMI_DH_PCR handle, // IN: handle of PCR UINT32 *groupIndex // OUT: group index if PCR // belongs a group that allows // policy. If PCR does not belong // to a policy group, the value // in this parameter is invalid ); TPMI_YES_NO PCRCapGetAllocation( UINT32 count, // IN: count of return TPML_PCR_SELECTION *pcrSelection // OUT: PCR allocation list ); void PCRChanged(TPM_HANDLE pcrHandle // IN: the handle of the PCR that changed. ); void PCRComputeCurrentDigest( TPMI_ALG_HASH hashAlg, // IN: hash algorithm to compute digest TPML_PCR_SELECTION * selection, // IN/OUT: PCR selection (filtered on output) TPM2B_DIGEST *digest // OUT: digest ); TPMI_ALG_HASH PCRGetAuthPolicy(TPMI_DH_PCR handle, // IN: PCR handle TPM2B_DIGEST *policy // OUT: policy of PCR ); TPMI_YES_NO PCRCapGetHandles(TPMI_DH_PCR handle, // IN: start handle UINT32 count, // IN: count of returned handle TPML_HANDLE *handleList // OUT: list of handle ); TPMI_YES_NO PCRCapGetProperties( TPM_PT_PCR property, // IN: the starting PCR property UINT32 count, // IN: count of returned propertie TPML_TAGGED_PCR_PROPERTY *select // OUT: PCR select ); void PCRGetAuthValue(TPMI_DH_PCR handle, // IN: PCR handle TPM2B_AUTH *auth // OUT: authValue of PCR ); void PCRExtend(TPMI_DH_PCR handle, // IN: PCR handle to be extended TPMI_ALG_HASH hash, // IN: hash algorithm of PCR UINT32 size, // IN: size of data to be extended BYTE *data // IN: data to be extended ); void PCRResetDynamics(void); void PcrDrtm( const TPMI_DH_PCR pcrHandle, // IN: the index of the PCR to be modified const TPMI_ALG_HASH hash, // IN: the bank identifier const TPM2B_DIGEST *digest // IN: the digest to modify the PCR ); BOOL PcrIsAllocated(UINT32 pcr, // IN: The number of the PCR TPMI_ALG_HASH hashAlg // IN: The PCR algorithm ); BOOL PCRIsExtendAllowed(TPMI_DH_PCR handle // IN: PCR handle to be extended ); BOOL PCRIsResetAllowed(TPMI_DH_PCR handle // IN: PCR handle to be extended ); BOOL PCRIsStateSaved(TPMI_DH_PCR handle // IN: PCR handle to be extended ); BOOL PCRPolicyIsAvailable(TPMI_DH_PCR handle // IN: PCR handle ); void PCRRead( TPML_PCR_SELECTION * selection, // IN/OUT: PCR selection (filtered on output) TPML_DIGEST *digest, // OUT: digest UINT32 *pcrCounter // OUT: the current value of PCR generation number ); void PCRSetValue(TPM_HANDLE handle, // IN: the handle of the PCR to set INT8 initialValue // IN: the value to set ); void PCRSimStart(void); void PCRStartup(STARTUP_TYPE type, // IN: startup type BYTE locality // IN: startup locality ); void PCRStateSave(TPM_SU type // IN: startup type ); #endif // __TPM2_PCR_FP_H