| /* |
| * 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 |