blob: 1e29e2828da265aef764ca3f4635f21064c64df6 [file] [log] [blame]
/*
* 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
);
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