Home | History | Annotate | Download | only in tpm2
      1 /*
      2  * Copyright 2015 The Chromium OS Authors. All rights reserved.
      3  * Use of this source code is governed by a BSD-style license that can be
      4  * found in the LICENSE file.
      5  */
      6 
      7 #ifndef __TPM2_PCR_FP_H
      8 #define __TPM2_PCR_FP_H
      9 
     10 TPM_RC PCRAllocate(TPML_PCR_SELECTION *allocate,  //   IN: required allocation
     11                    UINT32 *maxPCR,        //   OUT: Maximum number of PCR
     12                    UINT32 *sizeNeeded,    //   OUT: required space
     13                    UINT32 *sizeAvailable  //   OUT: available space
     14                    );
     15 BOOL PCRBelongsAuthGroup(TPMI_DH_PCR handle,  // IN: handle of PCR
     16                          UINT32 *groupIndex   // OUT: group index if PCR belongs
     17                                               // a group that allows authValue.
     18                                               // If PCR does not belong to an
     19                                               // auth group, the value in this
     20                                               // parameter is invalid
     21                          );
     22 BOOL PCRBelongsPolicyGroup(TPMI_DH_PCR handle,  // IN: handle of PCR
     23                            UINT32 *groupIndex   // OUT: group index if PCR
     24                                                 // belongs a group that allows
     25                                                // policy. If PCR does not belong
     26                                                // to a policy group, the value
     27                                                // in this parameter is invalid
     28                            );
     29 TPMI_YES_NO PCRCapGetAllocation(
     30     UINT32 count,                     // IN: count of return
     31     TPML_PCR_SELECTION *pcrSelection  // OUT: PCR allocation list
     32     );
     33 void PCRChanged(TPM_HANDLE pcrHandle  // IN: the handle of the PCR that changed.
     34                 );
     35 void PCRComputeCurrentDigest(
     36     TPMI_ALG_HASH hashAlg,  // IN: hash algorithm to compute digest
     37     TPML_PCR_SELECTION *
     38         selection,        // IN/OUT: PCR selection (filtered on output)
     39     TPM2B_DIGEST *digest  // OUT: digest
     40     );
     41 TPMI_ALG_HASH PCRGetAuthPolicy(TPMI_DH_PCR handle,   // IN: PCR handle
     42                                TPM2B_DIGEST *policy  // OUT: policy of PCR
     43                                );
     44 TPMI_YES_NO PCRCapGetHandles(TPMI_DH_PCR handle,  // IN: start handle
     45                              UINT32 count,  // IN: count of returned handle
     46                              TPML_HANDLE *handleList  // OUT: list of handle
     47                              );
     48 TPMI_YES_NO PCRCapGetProperties(
     49     TPM_PT_PCR property,              // IN: the starting PCR property
     50     UINT32 count,                     // IN: count of returned propertie
     51     TPML_TAGGED_PCR_PROPERTY *select  // OUT: PCR select
     52     );
     53 void PCRGetAuthValue(TPMI_DH_PCR handle,  // IN: PCR handle
     54                      TPM2B_AUTH *auth     // OUT: authValue of PCR
     55                      );
     56 void PCRExtend(TPMI_DH_PCR handle,  //   IN:    PCR handle to be extended
     57                TPMI_ALG_HASH hash,  //   IN:    hash algorithm of PCR
     58                UINT32 size,         //   IN:    size of data to be extended
     59                BYTE *data           //   IN:    data to be extended
     60                );
     61 void PCRResetDynamics(void);
     62 void PcrDrtm(
     63     const TPMI_DH_PCR pcrHandle,  // IN: the index of the PCR to be modified
     64     const TPMI_ALG_HASH hash,     // IN: the bank identifier
     65     const TPM2B_DIGEST *digest    // IN: the digest to modify the PCR
     66     );
     67 BOOL PcrIsAllocated(UINT32 pcr,            // IN: The number of the PCR
     68                     TPMI_ALG_HASH hashAlg  // IN: The PCR algorithm
     69                     );
     70 BOOL PCRIsExtendAllowed(TPMI_DH_PCR handle  // IN: PCR handle to be extended
     71                         );
     72 BOOL PCRIsResetAllowed(TPMI_DH_PCR handle  // IN: PCR handle to be extended
     73                        );
     74 BOOL PCRIsStateSaved(TPMI_DH_PCR handle  // IN: PCR handle to be extended
     75                      );
     76 BOOL PCRPolicyIsAvailable(TPMI_DH_PCR handle  // IN: PCR handle
     77                           );
     78 void PCRRead(
     79     TPML_PCR_SELECTION *
     80         selection,        // IN/OUT: PCR selection (filtered on output)
     81     TPML_DIGEST *digest,  // OUT: digest
     82     UINT32 *pcrCounter    // OUT: the current value of PCR generation number
     83     );
     84 void PCRSetValue(TPM_HANDLE handle,  // IN: the handle of the PCR to set
     85                  INT8 initialValue   // IN: the value to set
     86                  );
     87 void PCRSimStart(void);
     88 void PCRStartup(STARTUP_TYPE type,  // IN: startup type
     89                 BYTE locality       // IN: startup locality
     90                 );
     91 void PCRStateSave(TPM_SU type  // IN: startup type
     92                   );
     93 
     94 #endif  // __TPM2_PCR_FP_H
     95