tpm2-tss 4.0.1
TPM Software stack 2.0 TCG spec compliant implementation
ifapi_policy_types.h
1/* SPDX-License-Identifier: BSD-2-Clause */
2/*******************************************************************************
3 * Copyright 2018-2019, Fraunhofer SIT sponsored by Infineon Technologies AG
4 * All rights reserved.
5 ******************************************************************************/
6#ifndef IFAPI_POLICY_TYPES_H
7#define IFAPI_POLICY_TYPES_H
8
9#include "tss2_tpm2_types.h"
10#include "fapi_types.h"
11
12typedef UINT32 TPMI_POLICYTYPE;
13#define POLICYELEMENTS 0
14#define POLICYOR 1
15#define POLICYSIGNED 2
16#define POLICYSECRET 3
17#define POLICYPCR 4
18#define POLICYLOCALITY 5
19#define POLICYNV 6
20#define POLICYCOUNTERTIMER 7
21#define POLICYCOMMANDCODE 8
22#define POLICYPHYSICALPRESENCE 9
23#define POLICYCPHASH 10
24#define POLICYNAMEHASH 11
25#define POLICYDUPLICATIONSELECT 12
26#define POLICYAUTHORIZE 13
27#define POLICYAUTHVALUE 14
28#define POLICYPASSWORD 15
29#define POLICYNVWRITTEN 16
30#define POLICYTEMPLATE 17
31#define POLICYAUTHORIZENV 18
32#define POLICYACTION 19
36typedef struct {
37 TPM2B_NONCE nonceTPM;
38 TPM2B_DIGEST cpHashA;
39 TPM2B_NONCE policyRef;
40 INT32 expiration;
41 TPMT_SIGNATURE auth;
42 TPM2B_NAME publicKey;
44 char *keyPath;
45 TPMT_PUBLIC keyPublic;
46 char *keyPEM;
47 TPMI_ALG_HASH keyPEMhashAlg;
48 TPMT_RSA_SCHEME rsaScheme;
49 TPMT_SIGNATURE signature_tpm;
51
54typedef struct {
55 TPM2B_NONCE nonceTPM;
56 TPM2B_DIGEST cpHashA;
57 TPM2B_NONCE policyRef;
58 INT32 expiration;
59 char *objectPath;
60 TPM2B_NAME objectName;
62
65typedef struct {
66 TPMA_LOCALITY locality;
68
71typedef struct {
72 char *nvPath;
73 TPMI_RH_NV_INDEX nvIndex;
74 TPMS_NV_PUBLIC nvPublic;
75 TPMI_RH_NV_AUTH authHandle;
76 TPM2B_OPERAND operandB;
77 UINT16 offset;
78 TPM2_EO operation;
80
83typedef struct {
84 TPM2B_OPERAND operandB;
85 UINT16 offset;
86 TPM2_EO operation;
88
91typedef struct {
92 TPM2_CC code;
94
97typedef struct {
99
102typedef struct {
103 TPM2B_DIGEST cpHash;
105
108typedef struct {
109 UINT32 count;
110 UINT32 i;
111 TPM2B_NAME objectNames[3];
112 char *namePaths[3];
113 TPM2B_DIGEST nameHash;
115
118typedef struct {
119 TPM2B_NAME objectName;
120 TPM2B_NAME newParentName;
121 TPMI_YES_NO includeObject;
123 TPMT_PUBLIC newParentPublic;
125
128typedef struct {
129 char *type;
130 TPMT_PUBLIC key;
131 TPM2B_NONCE policyRef;
132 TPMT_SIGNATURE signature;
133 TPMI_ALG_HASH hashAlg;
134 UINT8_ARY pemSignature;
135 char *keyPEM;
136 TPMT_RSA_SCHEME rsaScheme;
138
139typedef struct policy_object_node POLICY_OBJECT;
140
143typedef struct {
144 TPM2B_DIGEST approvedPolicy;
145 TPM2B_NONCE policyRef;
146 TPM2B_NAME keyName;
147 TPMT_TK_VERIFIED checkTicket;
148 char *keyPath;
149 TPMT_PUBLIC keyPublic;
150 char *keyPEM;
151 TPMI_ALG_HASH keyPEMhashAlg;
152 TPMT_RSA_SCHEME rsaScheme;
153 TPMT_SIGNATURE signature;
155
158typedef struct {
160
163typedef struct {
165
168typedef struct {
169 TPMI_YES_NO writtenSet;
171
174typedef struct {
175 TPM2B_DIGEST templateHash;
176 TPM2B_PUBLIC templatePublic;
178
181typedef struct {
182 char *nvPath;
183 TPMS_NV_PUBLIC nvPublic;
184 TPM2B_DIGEST policy;
185 TPMT_HA nv_policy;
186 uint8_t *policy_buffer;
188
191typedef struct {
192 char *action;
194
197typedef struct {
198 struct TPML_PCRVALUES *pcrs;
199 TPMS_PCR_SELECT currentPCRs;
200 TPML_PCR_SELECTION currentPCRandBanks;
202
209
211
214typedef struct {
215 char *name;
217 TPML_DIGEST_VALUES policyDigests;
220
227
230typedef struct {
233
257
260typedef struct {
261 TPMI_POLICYTYPE type;
262 TPML_DIGEST_VALUES policyDigests;
265
272
281
282#endif /* IFAPI_POLICY_TYPES_H */
Definition ifapi_policy_types.h:205
UINT32 count
Definition ifapi_policy_types.h:206
TPMS_POLICYAUTHORIZATION authorizations[]
Definition ifapi_policy_types.h:207
Definition ifapi_policy_types.h:223
TPMS_POLICYBRANCH authorizations[]
Definition ifapi_policy_types.h:225
UINT32 count
Definition ifapi_policy_types.h:224
Definition ifapi_policy_types.h:268
UINT32 count
Definition ifapi_policy_types.h:269
TPMT_POLICYELEMENT elements[]
Definition ifapi_policy_types.h:270
Definition ifapi_policy_types.h:191
char * action
Definition ifapi_policy_types.h:192
Definition ifapi_policy_types.h:128
char * type
Definition ifapi_policy_types.h:129
TPMT_PUBLIC key
Definition ifapi_policy_types.h:130
TPM2B_NONCE policyRef
Definition ifapi_policy_types.h:131
TPMT_SIGNATURE signature
Definition ifapi_policy_types.h:132
Definition ifapi_policy_types.h:143
TPMT_RSA_SCHEME rsaScheme
Definition ifapi_policy_types.h:152
TPMT_TK_VERIFIED checkTicket
Definition ifapi_policy_types.h:147
TPM2B_NONCE policyRef
Definition ifapi_policy_types.h:145
TPMT_PUBLIC keyPublic
Definition ifapi_policy_types.h:149
char * keyPath
Definition ifapi_policy_types.h:148
TPM2B_NAME keyName
Definition ifapi_policy_types.h:146
TPM2B_DIGEST approvedPolicy
Definition ifapi_policy_types.h:144
char * keyPEM
Definition ifapi_policy_types.h:150
TPMI_ALG_HASH keyPEMhashAlg
Definition ifapi_policy_types.h:151
Definition ifapi_policy_types.h:181
TPM2B_DIGEST policy
Definition ifapi_policy_types.h:184
char * nvPath
Definition ifapi_policy_types.h:182
TPMT_HA nv_policy
Definition ifapi_policy_types.h:185
TPMS_NV_PUBLIC nvPublic
Definition ifapi_policy_types.h:183
Definition ifapi_policy_types.h:158
Definition ifapi_policy_types.h:214
struct TPML_POLICYELEMENTS * policy
Definition ifapi_policy_types.h:218
char * name
Definition ifapi_policy_types.h:215
char * description
Definition ifapi_policy_types.h:216
Definition ifapi_policy_types.h:91
TPM2_CC code
Definition ifapi_policy_types.h:92
Definition ifapi_policy_types.h:83
TPM2B_OPERAND operandB
Definition ifapi_policy_types.h:84
TPM2_EO operation
Definition ifapi_policy_types.h:86
UINT16 offset
Definition ifapi_policy_types.h:85
Definition ifapi_policy_types.h:102
TPM2B_DIGEST cpHash
Definition ifapi_policy_types.h:103
Definition ifapi_policy_types.h:118
char * newParentPath
Definition ifapi_policy_types.h:122
TPM2B_NAME newParentName
Definition ifapi_policy_types.h:120
TPMT_PUBLIC newParentPublic
Definition ifapi_policy_types.h:123
TPMI_YES_NO includeObject
Definition ifapi_policy_types.h:121
TPM2B_NAME objectName
Definition ifapi_policy_types.h:119
Definition ifapi_policy_types.h:275
struct TPML_POLICYELEMENTS * policy
Definition ifapi_policy_types.h:279
struct TPML_POLICYAUTHORIZATIONS * policyAuthorizations
Definition ifapi_policy_types.h:278
char * description
Definition ifapi_policy_types.h:276
TPML_DIGEST_VALUES policyDigests
Definition ifapi_policy_types.h:277
Definition ifapi_policy_types.h:65
TPMA_LOCALITY locality
Definition ifapi_policy_types.h:66
Definition ifapi_policy_types.h:108
UINT32 i
Definition ifapi_policy_types.h:110
UINT32 count
Definition ifapi_policy_types.h:109
TPM2B_DIGEST nameHash
Definition ifapi_policy_types.h:113
Definition ifapi_policy_types.h:71
TPM2B_OPERAND operandB
Definition ifapi_policy_types.h:76
TPMI_RH_NV_AUTH authHandle
Definition ifapi_policy_types.h:75
char * nvPath
Definition ifapi_policy_types.h:72
TPM2_EO operation
Definition ifapi_policy_types.h:78
TPMS_NV_PUBLIC nvPublic
Definition ifapi_policy_types.h:74
TPMI_RH_NV_INDEX nvIndex
Definition ifapi_policy_types.h:73
UINT16 offset
Definition ifapi_policy_types.h:77
Definition ifapi_policy_types.h:168
TPMI_YES_NO writtenSet
Definition ifapi_policy_types.h:169
Definition ifapi_policy_types.h:230
struct TPML_POLICYBRANCHES * branches
Definition ifapi_policy_types.h:231
Definition ifapi_policy_types.h:163
Definition ifapi_policy_types.h:197
TPML_PCR_SELECTION currentPCRandBanks
Definition ifapi_policy_types.h:200
TPMS_PCR_SELECT currentPCRs
Definition ifapi_policy_types.h:199
struct TPML_PCRVALUES * pcrs
Definition ifapi_policy_types.h:198
Definition ifapi_policy_types.h:97
Definition ifapi_policy_types.h:54
TPM2B_DIGEST cpHashA
Definition ifapi_policy_types.h:56
TPM2B_NONCE policyRef
Definition ifapi_policy_types.h:57
char * objectPath
Definition ifapi_policy_types.h:59
TPM2B_NONCE nonceTPM
Definition ifapi_policy_types.h:55
TPM2B_NAME objectName
Definition ifapi_policy_types.h:60
INT32 expiration
Definition ifapi_policy_types.h:58
Definition ifapi_policy_types.h:36
TPMT_RSA_SCHEME rsaScheme
Definition ifapi_policy_types.h:48
TPM2B_DIGEST cpHashA
Definition ifapi_policy_types.h:38
TPM2B_NONCE policyRef
Definition ifapi_policy_types.h:39
TPMT_PUBLIC keyPublic
Definition ifapi_policy_types.h:45
char * keyPath
Definition ifapi_policy_types.h:44
TPM2B_NONCE nonceTPM
Definition ifapi_policy_types.h:37
TPM2B_NAME publicKey
Definition ifapi_policy_types.h:42
TPMT_SIGNATURE auth
Definition ifapi_policy_types.h:41
char * keyPEM
Definition ifapi_policy_types.h:46
TPMI_ALG_HASH keyPEMhashAlg
Definition ifapi_policy_types.h:47
char * publicKeyHint
Definition ifapi_policy_types.h:43
INT32 expiration
Definition ifapi_policy_types.h:40
Definition ifapi_policy_types.h:174
TPM2B_PUBLIC templatePublic
Definition ifapi_policy_types.h:176
TPM2B_DIGEST templateHash
Definition ifapi_policy_types.h:175
Definition ifapi_policy_types.h:260
TPMU_POLICYELEMENT element
Definition ifapi_policy_types.h:263
TPMI_POLICYTYPE type
Definition ifapi_policy_types.h:261
TPML_DIGEST_VALUES policyDigests
Definition ifapi_policy_types.h:262
Definition fapi_types.h:15
Definition ifapi_policy_execute.h:44
Definition ifapi_policy_types.h:236
TPMS_POLICYCOMMANDCODE PolicyCommandCode
Definition ifapi_policy_types.h:244
TPMS_POLICYPCR PolicyPCR
Definition ifapi_policy_types.h:240
TPMS_POLICYNV PolicyNV
Definition ifapi_policy_types.h:242
TPMS_POLICYAUTHVALUE PolicyAuthValue
Definition ifapi_policy_types.h:250
TPMS_POLICYSIGNED PolicySigned
Definition ifapi_policy_types.h:238
TPMS_POLICYAUTHORIZE PolicyAuthorize
Definition ifapi_policy_types.h:249
TPMS_POLICYLOCALITY PolicyLocality
Definition ifapi_policy_types.h:241
TPMS_POLICYCOUNTERTIMER PolicyCounterTimer
Definition ifapi_policy_types.h:243
TPMS_POLICYOR PolicyOr
Definition ifapi_policy_types.h:237
TPMS_POLICYCPHASH PolicyCpHash
Definition ifapi_policy_types.h:246
TPMS_POLICYSECRET PolicySecret
Definition ifapi_policy_types.h:239
TPMS_POLICYDUPLICATIONSELECT PolicyDuplicationSelect
Definition ifapi_policy_types.h:248
TPMS_POLICYAUTHORIZENV PolicyAuthorizeNv
Definition ifapi_policy_types.h:254
TPMS_POLICYPASSWORD PolicyPassword
Definition ifapi_policy_types.h:251
TPMS_POLICYPHYSICALPRESENCE PolicyPhysicalPresence
Definition ifapi_policy_types.h:245
TPMS_POLICYACTION PolicyAction
Definition ifapi_policy_types.h:255
TPMS_POLICYNVWRITTEN PolicyNvWritten
Definition ifapi_policy_types.h:252
TPMS_POLICYTEMPLATE PolicyTemplate
Definition ifapi_policy_types.h:253
TPMS_POLICYNAMEHASH PolicyNameHash
Definition ifapi_policy_types.h:247