tpm2-tss 4.2.0
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 <stdint.h> // for uint8_t
10
11#include "fapi_types.h" // for UINT8_ARY
12#include "tss2_common.h" // for UINT32, INT32, UINT16
13#include "tss2_tpm2_types.h" // for TPM2B_DIGEST, TPM2B_NAME, TPM2B_NONCE
14
16
17typedef UINT32 TPMI_POLICYTYPE;
18#define POLICYELEMENTS 0
19#define POLICYOR 1
20#define POLICYSIGNED 2
21#define POLICYSECRET 3
22#define POLICYPCR 4
23#define POLICYLOCALITY 5
24#define POLICYNV 6
25#define POLICYCOUNTERTIMER 7
26#define POLICYCOMMANDCODE 8
27#define POLICYPHYSICALPRESENCE 9
28#define POLICYCPHASH 10
29#define POLICYNAMEHASH 11
30#define POLICYDUPLICATIONSELECT 12
31#define POLICYAUTHORIZE 13
32#define POLICYAUTHVALUE 14
33#define POLICYPASSWORD 15
34#define POLICYNVWRITTEN 16
35#define POLICYTEMPLATE 17
36#define POLICYAUTHORIZENV 18
37#define POLICYACTION 19
38
41typedef struct {
42 TPM2B_NONCE nonceTPM;
43 TPM2B_DIGEST cpHashA;
44 TPM2B_NONCE policyRef;
45 INT32 expiration;
46 TPMT_SIGNATURE auth;
47 TPM2B_NAME publicKey;
49 char *keyPath;
50 TPMT_PUBLIC keyPublic;
51 char *keyPEM;
52 TPMI_ALG_HASH keyPEMhashAlg;
53 TPMT_RSA_SCHEME rsaScheme;
54 TPMT_SIGNATURE signature_tpm;
56
59typedef struct {
60 TPM2B_NONCE nonceTPM;
61 TPM2B_DIGEST cpHashA;
62 TPM2B_NONCE policyRef;
63 INT32 expiration;
64 char *objectPath;
65 TPM2B_NAME objectName;
67
70typedef struct {
71 TPMA_LOCALITY locality;
73
76typedef struct {
77 char *nvPath;
78 TPMI_RH_NV_INDEX nvIndex;
79 TPMS_NV_PUBLIC nvPublic;
80 TPMI_RH_NV_AUTH authHandle;
81 TPM2B_OPERAND operandB;
82 UINT16 offset;
83 TPM2_EO operation;
85
88typedef struct {
89 TPM2B_OPERAND operandB;
90 UINT16 offset;
91 TPM2_EO operation;
93
96typedef struct {
97 TPM2_CC code;
99
102typedef struct {
104
107typedef struct {
108 TPM2B_DIGEST cpHash;
110
113typedef struct {
114 UINT32 count;
115 UINT32 i;
116 TPM2B_NAME objectNames[3];
117 char *namePaths[3];
118 TPM2B_DIGEST nameHash;
120
123typedef struct {
124 TPM2B_NAME objectName;
125 TPM2B_NAME newParentName;
126 TPMI_YES_NO includeObject;
128 TPMT_PUBLIC newParentPublic;
130
133typedef struct {
134 char *type;
135 TPMT_PUBLIC key;
136 TPM2B_NONCE policyRef;
137 TPMT_SIGNATURE signature;
138 TPMI_ALG_HASH hashAlg;
139 UINT8_ARY pemSignature;
140 char *keyPEM;
141 TPMT_RSA_SCHEME rsaScheme;
143
144typedef struct policy_object_node POLICY_OBJECT;
145
148typedef struct {
149 TPM2B_DIGEST approvedPolicy;
150 TPM2B_NONCE policyRef;
151 TPM2B_NAME keyName;
152 TPMT_TK_VERIFIED checkTicket;
153 char *keyPath;
154 TPMT_PUBLIC keyPublic;
155 char *keyPEM;
156 TPMI_ALG_HASH keyPEMhashAlg;
157 TPMT_RSA_SCHEME rsaScheme;
158 TPMT_SIGNATURE signature;
160
163typedef struct {
165
168typedef struct {
170
173typedef struct {
174 TPMI_YES_NO writtenSet;
176
179typedef struct {
180 TPM2B_DIGEST templateHash;
181 TPM2B_PUBLIC templatePublic;
183
186typedef struct {
187 char *nvPath;
188 TPMS_NV_PUBLIC nvPublic;
189 TPM2B_DIGEST policy;
190 TPMT_HA nv_policy;
191 uint8_t *policy_buffer;
193
196typedef struct {
197 char *action;
199
202typedef struct {
203 struct TPML_PCRVALUES *pcrs;
204 TPMS_PCR_SELECT currentPCRs;
205 TPML_PCR_SELECTION currentPCRandBanks;
207
214
216
219typedef struct {
220 char *name;
222 TPML_DIGEST_VALUES policyDigests;
225
232
235typedef struct {
239
263
266typedef struct {
267 TPMI_POLICYTYPE type;
268 TPML_DIGEST_VALUES policyDigests;
271
278
287
288#endif /* IFAPI_POLICY_TYPES_H */
Definition ifapi_policy_types.h:210
UINT32 count
Definition ifapi_policy_types.h:211
TPMS_POLICYAUTHORIZATION authorizations[]
Definition ifapi_policy_types.h:212
Definition ifapi_policy_types.h:228
TPMS_POLICYBRANCH authorizations[]
Definition ifapi_policy_types.h:230
UINT32 count
Definition ifapi_policy_types.h:229
Definition ifapi_policy_types.h:274
UINT32 count
Definition ifapi_policy_types.h:275
TPMT_POLICYELEMENT elements[]
Definition ifapi_policy_types.h:276
Definition ifapi_policy_types.h:196
char * action
Definition ifapi_policy_types.h:197
Definition ifapi_policy_types.h:133
char * type
Definition ifapi_policy_types.h:134
TPMT_PUBLIC key
Definition ifapi_policy_types.h:135
TPM2B_NONCE policyRef
Definition ifapi_policy_types.h:136
TPMT_SIGNATURE signature
Definition ifapi_policy_types.h:137
Definition ifapi_policy_types.h:148
TPMT_RSA_SCHEME rsaScheme
Definition ifapi_policy_types.h:157
TPMT_TK_VERIFIED checkTicket
Definition ifapi_policy_types.h:152
TPM2B_NONCE policyRef
Definition ifapi_policy_types.h:150
TPMT_PUBLIC keyPublic
Definition ifapi_policy_types.h:154
char * keyPath
Definition ifapi_policy_types.h:153
TPM2B_NAME keyName
Definition ifapi_policy_types.h:151
TPM2B_DIGEST approvedPolicy
Definition ifapi_policy_types.h:149
char * keyPEM
Definition ifapi_policy_types.h:155
TPMI_ALG_HASH keyPEMhashAlg
Definition ifapi_policy_types.h:156
Definition ifapi_policy_types.h:186
TPM2B_DIGEST policy
Definition ifapi_policy_types.h:189
char * nvPath
Definition ifapi_policy_types.h:187
TPMT_HA nv_policy
Definition ifapi_policy_types.h:190
TPMS_NV_PUBLIC nvPublic
Definition ifapi_policy_types.h:188
Definition ifapi_policy_types.h:163
Definition ifapi_policy_types.h:219
struct TPML_POLICYELEMENTS * policy
Definition ifapi_policy_types.h:223
char * name
Definition ifapi_policy_types.h:220
char * description
Definition ifapi_policy_types.h:221
Definition ifapi_policy_types.h:96
TPM2_CC code
Definition ifapi_policy_types.h:97
Definition ifapi_policy_types.h:88
TPM2B_OPERAND operandB
Definition ifapi_policy_types.h:89
TPM2_EO operation
Definition ifapi_policy_types.h:91
UINT16 offset
Definition ifapi_policy_types.h:90
Definition ifapi_policy_types.h:107
TPM2B_DIGEST cpHash
Definition ifapi_policy_types.h:108
Definition ifapi_policy_types.h:123
char * newParentPath
Definition ifapi_policy_types.h:127
TPM2B_NAME newParentName
Definition ifapi_policy_types.h:125
TPMT_PUBLIC newParentPublic
Definition ifapi_policy_types.h:128
TPMI_YES_NO includeObject
Definition ifapi_policy_types.h:126
TPM2B_NAME objectName
Definition ifapi_policy_types.h:124
Definition ifapi_policy_types.h:281
struct TPML_POLICYELEMENTS * policy
Definition ifapi_policy_types.h:285
struct TPML_POLICYAUTHORIZATIONS * policyAuthorizations
Definition ifapi_policy_types.h:284
char * description
Definition ifapi_policy_types.h:282
TPML_DIGEST_VALUES policyDigests
Definition ifapi_policy_types.h:283
Definition ifapi_policy_types.h:70
TPMA_LOCALITY locality
Definition ifapi_policy_types.h:71
Definition ifapi_policy_types.h:113
TPM2B_NAME objectNames[3]
Definition ifapi_policy_types.h:116
UINT32 i
Definition ifapi_policy_types.h:115
UINT32 count
Definition ifapi_policy_types.h:114
TPM2B_DIGEST nameHash
Definition ifapi_policy_types.h:118
char * namePaths[3]
Definition ifapi_policy_types.h:117
Definition ifapi_policy_types.h:76
TPM2B_OPERAND operandB
Definition ifapi_policy_types.h:81
TPMI_RH_NV_AUTH authHandle
Definition ifapi_policy_types.h:80
char * nvPath
Definition ifapi_policy_types.h:77
TPM2_EO operation
Definition ifapi_policy_types.h:83
TPMS_NV_PUBLIC nvPublic
Definition ifapi_policy_types.h:79
TPMI_RH_NV_INDEX nvIndex
Definition ifapi_policy_types.h:78
UINT16 offset
Definition ifapi_policy_types.h:82
Definition ifapi_policy_types.h:173
TPMI_YES_NO writtenSet
Definition ifapi_policy_types.h:174
Definition ifapi_policy_types.h:235
struct TPML_POLICYBRANCHES * branches
Definition ifapi_policy_types.h:236
Definition ifapi_policy_types.h:168
Definition ifapi_policy_types.h:202
TPML_PCR_SELECTION currentPCRandBanks
Definition ifapi_policy_types.h:205
TPMS_PCR_SELECT currentPCRs
Definition ifapi_policy_types.h:204
struct TPML_PCRVALUES * pcrs
Definition ifapi_policy_types.h:203
Definition ifapi_policy_types.h:102
Definition ifapi_policy_types.h:59
TPM2B_DIGEST cpHashA
Definition ifapi_policy_types.h:61
TPM2B_NONCE policyRef
Definition ifapi_policy_types.h:62
char * objectPath
Definition ifapi_policy_types.h:64
TPM2B_NONCE nonceTPM
Definition ifapi_policy_types.h:60
TPM2B_NAME objectName
Definition ifapi_policy_types.h:65
INT32 expiration
Definition ifapi_policy_types.h:63
Definition ifapi_policy_types.h:41
TPMT_RSA_SCHEME rsaScheme
Definition ifapi_policy_types.h:53
TPM2B_DIGEST cpHashA
Definition ifapi_policy_types.h:43
TPM2B_NONCE policyRef
Definition ifapi_policy_types.h:44
TPMT_PUBLIC keyPublic
Definition ifapi_policy_types.h:50
char * keyPath
Definition ifapi_policy_types.h:49
TPM2B_NONCE nonceTPM
Definition ifapi_policy_types.h:42
TPM2B_NAME publicKey
Definition ifapi_policy_types.h:47
TPMT_SIGNATURE auth
Definition ifapi_policy_types.h:46
char * keyPEM
Definition ifapi_policy_types.h:51
TPMI_ALG_HASH keyPEMhashAlg
Definition ifapi_policy_types.h:52
char * publicKeyHint
Definition ifapi_policy_types.h:48
INT32 expiration
Definition ifapi_policy_types.h:45
Definition ifapi_policy_types.h:179
TPM2B_PUBLIC templatePublic
Definition ifapi_policy_types.h:181
TPM2B_DIGEST templateHash
Definition ifapi_policy_types.h:180
Definition ifapi_policy_types.h:266
TPMU_POLICYELEMENT element
Definition ifapi_policy_types.h:269
TPMI_POLICYTYPE type
Definition ifapi_policy_types.h:267
TPML_DIGEST_VALUES policyDigests
Definition ifapi_policy_types.h:268
Definition fapi_types.h:15
Definition ifapi_policy_execute.h:44
Definition ifapi_policy_types.h:242
TPMS_POLICYCOMMANDCODE PolicyCommandCode
Definition ifapi_policy_types.h:250
TPMS_POLICYPCR PolicyPCR
Definition ifapi_policy_types.h:246
TPMS_POLICYNV PolicyNV
Definition ifapi_policy_types.h:248
TPMS_POLICYAUTHVALUE PolicyAuthValue
Definition ifapi_policy_types.h:256
TPMS_POLICYSIGNED PolicySigned
Definition ifapi_policy_types.h:244
TPMS_POLICYAUTHORIZE PolicyAuthorize
Definition ifapi_policy_types.h:255
TPMS_POLICYLOCALITY PolicyLocality
Definition ifapi_policy_types.h:247
TPMS_POLICYCOUNTERTIMER PolicyCounterTimer
Definition ifapi_policy_types.h:249
TPMS_POLICYOR PolicyOr
Definition ifapi_policy_types.h:243
TPMS_POLICYCPHASH PolicyCpHash
Definition ifapi_policy_types.h:252
TPMS_POLICYSECRET PolicySecret
Definition ifapi_policy_types.h:245
TPMS_POLICYDUPLICATIONSELECT PolicyDuplicationSelect
Definition ifapi_policy_types.h:254
TPMS_POLICYAUTHORIZENV PolicyAuthorizeNv
Definition ifapi_policy_types.h:260
TPMS_POLICYPASSWORD PolicyPassword
Definition ifapi_policy_types.h:257
TPMS_POLICYPHYSICALPRESENCE PolicyPhysicalPresence
Definition ifapi_policy_types.h:251
TPMS_POLICYACTION PolicyAction
Definition ifapi_policy_types.h:261
TPMS_POLICYNVWRITTEN PolicyNvWritten
Definition ifapi_policy_types.h:258
TPMS_POLICYTEMPLATE PolicyTemplate
Definition ifapi_policy_types.h:259
TPMS_POLICYNAMEHASH PolicyNameHash
Definition ifapi_policy_types.h:253