aboutsummaryrefslogtreecommitdiff
path: root/PCR_fp.h
blob: 8d1d4552d8092390e877ffead5cc362fb7952138 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
/*
 * 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