94 lines
4.5 KiB
C
94 lines
4.5 KiB
C
/*
|
|
* 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
|