blob: 9226f5fb8ce48168d6efa770ddb1ed4f6a6b255f [file] [log] [blame]
Vadim Bendebury56797522015-05-20 10:32:25 -07001// This file was extracted from the TCG Published
2// Trusted Platform Module Library
3// Part 4: Supporting Routines
4// Family "2.0"
5// Level 00 Revision 01.16
6// October 30, 2014
7
8static const TPMA_CC s_ccAttr [] = {
9 {0x011f, 0, 1, 0, 0, 2, 0, 0, 0}, // TPM_CC_NV_UndefineSpaceSpecial
10 {0x0120, 0, 1, 0, 0, 2, 0, 0, 0}, // TPM_CC_EvictControl
11 {0x0121, 0, 1, 1, 0, 1, 0, 0, 0}, // TPM_CC_HierarchyControl
12 {0x0122, 0, 1, 0, 0, 2, 0, 0, 0}, // TPM_CC_NV_UndefineSpace
13 {0x0123, 0, 0, 0, 0, 0, 0, 0, 0}, // No command
14 {0x0124, 0, 1, 1, 0, 1, 0, 0, 0}, // TPM_CC_ChangeEPS
15 {0x0125, 0, 1, 1, 0, 1, 0, 0, 0}, // TPM_CC_ChangePPS
16 {0x0126, 0, 1, 1, 0, 1, 0, 0, 0}, // TPM_CC_Clear
17 {0x0127, 0, 1, 0, 0, 1, 0, 0, 0}, // TPM_CC_ClearControl
18 {0x0128, 0, 1, 0, 0, 1, 0, 0, 0}, // TPM_CC_ClockSet
19 {0x0129, 0, 1, 0, 0, 1, 0, 0, 0}, // TPM_CC_HierarchyChangeAuth
20 {0x012a, 0, 1, 0, 0, 1, 0, 0, 0}, // TPM_CC_NV_DefineSpace
21 {0x012b, 0, 1, 0, 0, 1, 0, 0, 0}, // TPM_CC_PCR_Allocate
22 {0x012c, 0, 1, 0, 0, 1, 0, 0, 0}, // TPM_CC_PCR_SetAuthPolicy
23 {0x012d, 0, 1, 0, 0, 1, 0, 0, 0}, // TPM_CC_PP_Commands
24 {0x012e, 0, 1, 0, 0, 1, 0, 0, 0}, // TPM_CC_SetPrimaryPolicy
25 {0x012f, 0, 0, 0, 0, 2, 0, 0, 0}, // TPM_CC_FieldUpgradeStart
26 {0x0130, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_ClockRateAdjust
27 {0x0131, 0, 0, 0, 0, 1, 1, 0, 0}, // TPM_CC_CreatePrimary
28 {0x0132, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_NV_GlobalWriteLock
29 {0x0133, 0, 1, 0, 0, 2, 0, 0, 0}, // TPM_CC_GetCommandAuditDigest
30 {0x0134, 0, 1, 0, 0, 2, 0, 0, 0}, // TPM_CC_NV_Increment
31 {0x0135, 0, 1, 0, 0, 2, 0, 0, 0}, // TPM_CC_NV_SetBits
32 {0x0136, 0, 1, 0, 0, 2, 0, 0, 0}, // TPM_CC_NV_Extend
33 {0x0137, 0, 1, 0, 0, 2, 0, 0, 0}, // TPM_CC_NV_Write
34 {0x0138, 0, 1, 0, 0, 2, 0, 0, 0}, // TPM_CC_NV_WriteLock
35 {0x0139, 0, 1, 0, 0, 1, 0, 0, 0}, // TPM_CC_DictionaryAttackLockReset
36 {0x013a, 0, 1, 0, 0, 1, 0, 0, 0}, // TPM_CC_DictionaryAttackParameters
37 {0x013b, 0, 1, 0, 0, 1, 0, 0, 0}, // TPM_CC_NV_ChangeAuth
38 {0x013c, 0, 1, 0, 0, 1, 0, 0, 0}, // TPM_CC_PCR_Event
39 {0x013d, 0, 1, 0, 0, 1, 0, 0, 0}, // TPM_CC_PCR_Reset
40 {0x013e, 0, 0, 0, 1, 1, 0, 0, 0}, // TPM_CC_SequenceComplete
41 {0x013f, 0, 1, 0, 0, 1, 0, 0, 0}, // TPM_CC_SetAlgorithmSet
42 {0x0140, 0, 1, 0, 0, 1, 0, 0, 0}, // TPM_CC_SetCommandCodeAuditStatus
43 {0x0141, 0, 1, 0, 0, 0, 0, 0, 0}, // TPM_CC_FieldUpgradeData
44 {0x0142, 0, 1, 0, 0, 0, 0, 0, 0}, // TPM_CC_IncrementalSelfTest
45 {0x0143, 0, 1, 0, 0, 0, 0, 0, 0}, // TPM_CC_SelfTest
46 {0x0144, 0, 1, 0, 0, 0, 0, 0, 0}, // TPM_CC_Startup
47 {0x0145, 0, 1, 0, 0, 0, 0, 0, 0}, // TPM_CC_Shutdown
48 {0x0146, 0, 1, 0, 0, 0, 0, 0, 0}, // TPM_CC_StirRandom
49 {0x0147, 0, 0, 0, 0, 2, 0, 0, 0}, // TPM_CC_ActivateCredential
50 {0x0148, 0, 0, 0, 0, 2, 0, 0, 0}, // TPM_CC_Certify
51 {0x0149, 0, 0, 0, 0, 3, 0, 0, 0}, // TPM_CC_PolicyNV
52 {0x014a, 0, 0, 0, 0, 2, 0, 0, 0}, // TPM_CC_CertifyCreation
53 {0x014b, 0, 0, 0, 0, 2, 0, 0, 0}, // TPM_CC_Duplicate
54 {0x014c, 0, 0, 0, 0, 2, 0, 0, 0}, // TPM_CC_GetTime
55 {0x014d, 0, 0, 0, 0, 3, 0, 0, 0}, // TPM_CC_GetSessionAuditDigest
56 {0x014e, 0, 0, 0, 0, 2, 0, 0, 0}, // TPM_CC_NV_Read
57 {0x014f, 0, 0, 0, 0, 2, 0, 0, 0}, // TPM_CC_NV_ReadLock
58 {0x0150, 0, 0, 0, 0, 2, 0, 0, 0}, // TPM_CC_ObjectChangeAuth
59 {0x0151, 0, 0, 0, 0, 2, 0, 0, 0}, // TPM_CC_PolicySecret
60 {0x0152, 0, 0, 0, 0, 2, 0, 0, 0}, // TPM_CC_Rewrap
61 {0x0153, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_Create
62 {0x0154, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_ECDH_ZGen
63 {0x0155, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_HMAC
64 {0x0156, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_Import
65 {0x0157, 0, 0, 0, 0, 1, 1, 0, 0}, // TPM_CC_Load
66 {0x0158, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_Quote
67 {0x0159, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_RSA_Decrypt
68 {0x015a, 0, 0, 0, 0, 0, 0, 0, 0}, // No command
69 {0x015b, 0, 0, 0, 0, 1, 1, 0, 0}, // TPM_CC_HMAC_Start
70 {0x015c, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_SequenceUpdate
71 {0x015d, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_Sign
72 {0x015e, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_Unseal
73 {0x015f, 0, 0, 0, 0, 0, 0, 0, 0}, // No command
74 {0x0160, 0, 0, 0, 0, 2, 0, 0, 0}, // TPM_CC_PolicySigned
75 {0x0161, 0, 0, 0, 0, 0, 1, 0, 0}, // TPM_CC_ContextLoad
76 {0x0162, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_ContextSave
77 {0x0163, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_ECDH_KeyGen
78 {0x0164, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_EncryptDecrypt
79 {0x0165, 0, 0, 0, 0, 0, 0, 0, 0}, // TPM_CC_FlushContext
80 {0x0166, 0, 0, 0, 0, 0, 0, 0, 0}, // No command
81 {0x0167, 0, 0, 0, 0, 0, 1, 0, 0}, // TPM_CC_LoadExternal
82 {0x0168, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_MakeCredential
83 {0x0169, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_NV_ReadPublic
84 {0x016a, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_PolicyAuthorize
85 {0x016b, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_PolicyAuthValue
86 {0x016c, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_PolicyCommandCode
87 {0x016d, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_PolicyCounterTimer
88 {0x016e, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_PolicyCpHash
89 {0x016f, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_PolicyLocality
90 {0x0170, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_PolicyNameHash
91 {0x0171, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_PolicyOR
92 {0x0172, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_PolicyTicket
93 {0x0173, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_ReadPublic
94 {0x0174, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_RSA_Encrypt
95 {0x0175, 0, 0, 0, 0, 0, 0, 0, 0}, // No command
96 {0x0176, 0, 0, 0, 0, 2, 1, 0, 0}, // TPM_CC_StartAuthSession
97 {0x0177, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_VerifySignature
98 {0x0178, 0, 0, 0, 0, 0, 0, 0, 0}, // TPM_CC_ECC_Parameters
99 {0x0179, 0, 0, 0, 0, 0, 0, 0, 0}, // TPM_CC_FirmwareRead
100 {0x017a, 0, 0, 0, 0, 0, 0, 0, 0}, // TPM_CC_GetCapability
101 {0x017b, 0, 0, 0, 0, 0, 0, 0, 0}, // TPM_CC_GetRandom
102 {0x017c, 0, 0, 0, 0, 0, 0, 0, 0}, // TPM_CC_GetTestResult
103 {0x017d, 0, 0, 0, 0, 0, 0, 0, 0}, // TPM_CC_Hash
104 {0x017e, 0, 0, 0, 0, 0, 0, 0, 0}, // TPM_CC_PCR_Read
105 {0x017f, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_PolicyPCR
106 {0x0180, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_PolicyRestart
107 {0x0181, 0, 0, 0, 0, 0, 0, 0, 0}, // TPM_CC_ReadClock
108 {0x0182, 0, 1, 0, 0, 1, 0, 0, 0}, // TPM_CC_PCR_Extend
109 {0x0183, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_PCR_SetAuthValue
110 {0x0184, 0, 0, 0, 0, 3, 0, 0, 0}, // TPM_CC_NV_Certify
111 {0x0185, 0, 1, 0, 1, 2, 0, 0, 0}, // TPM_CC_EventSequenceComplete
112 {0x0186, 0, 0, 0, 0, 0, 1, 0, 0}, // TPM_CC_HashSequenceStart
113 {0x0187, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_PolicyPhysicalPresence
114 {0x0188, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_PolicyDuplicationSelect
115 {0x0189, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_PolicyGetDigest
116 {0x018a, 0, 0, 0, 0, 0, 0, 0, 0}, // TPM_CC_TestParms
117 {0x018b, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_Commit
118 {0x018c, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_PolicyPassword
119 {0x018d, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_ZGen_2Phase
120 {0x018e, 0, 0, 0, 0, 0, 0, 0, 0}, // TPM_CC_EC_Ephemeral
Namyoon Woof4428142019-10-30 19:02:58 -0700121 {0x018f, 0, 0, 0, 0, 1, 0, 0, 0}, // TPM_CC_PolicyNvWritten
122
123 // Attr for Extended Commands
124 {0x8001, 0, 0, 0, 0, 2, 0, 0, 0}, // TPM_CCE_PolicyFidoSigned
Vadim Bendebury56797522015-05-20 10:32:25 -0700125};
126typedef UINT16 _ATTR_;
127#define NOT_IMPLEMENTED (_ATTR_)(0)
128#define ENCRYPT_2 (_ATTR_)(1 << 0)
129#define ENCRYPT_4 (_ATTR_)(1 << 1)
130#define DECRYPT_2 (_ATTR_)(1 << 2)
131#define DECRYPT_4 (_ATTR_)(1 << 3)
132#define HANDLE_1_USER (_ATTR_)(1 << 4)
133#define HANDLE_1_ADMIN (_ATTR_)(1 << 5)
134#define HANDLE_1_DUP (_ATTR_)(1 << 6)
135#define HANDLE_2_USER (_ATTR_)(1 << 7)
136#define PP_COMMAND (_ATTR_)(1 << 8)
137#define IS_IMPLEMENTED (_ATTR_)(1 << 9)
138#define NO_SESSIONS (_ATTR_)(1 << 10)
139#define NV_COMMAND (_ATTR_)(1 << 11)
140#define PP_REQUIRED (_ATTR_)(1 << 12)
141#define R_HANDLE (_ATTR_)(1 << 13)
142//
143// This is the command code attribute structure.
144//
145typedef UINT16 COMMAND_ATTRIBUTES;
146static const COMMAND_ATTRIBUTES s_commandAttributes [] = {
147 (_ATTR_)(CC_NV_UndefineSpaceSpecial *
148 (IS_IMPLEMENTED+HANDLE_1_ADMIN+HANDLE_2_USER+PP_COMMAND)), // 0x011f
149 (_ATTR_)(CC_EvictControl *
150 (IS_IMPLEMENTED+HANDLE_1_USER+PP_COMMAND)), // 0x0120
151 (_ATTR_)(CC_HierarchyControl *
152 (IS_IMPLEMENTED+HANDLE_1_USER+PP_COMMAND)), // 0x0121
153 (_ATTR_)(CC_NV_UndefineSpace *
154 (IS_IMPLEMENTED+HANDLE_1_USER+PP_COMMAND)), // 0x0122
155 (_ATTR_) (NOT_IMPLEMENTED),
156 // 0x0123 - Not assigned
157 (_ATTR_)(CC_ChangeEPS *
158 (IS_IMPLEMENTED+HANDLE_1_USER+PP_COMMAND)), // 0x0124
159 (_ATTR_)(CC_ChangePPS *
160 (IS_IMPLEMENTED+HANDLE_1_USER+PP_COMMAND)), // 0x0125
161 (_ATTR_)(CC_Clear *
162 (IS_IMPLEMENTED+HANDLE_1_USER+PP_COMMAND)), // 0x0126
163 (_ATTR_)(CC_ClearControl *
164 (IS_IMPLEMENTED+HANDLE_1_USER+PP_COMMAND)), // 0x0127
165 (_ATTR_)(CC_ClockSet *
166 (IS_IMPLEMENTED+HANDLE_1_USER+PP_COMMAND)), // 0x0128
167 (_ATTR_)(CC_HierarchyChangeAuth *
168 (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_USER+PP_COMMAND)), // 0x0129
169 (_ATTR_)(CC_NV_DefineSpace *
170 (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_USER+PP_COMMAND)), // 0x012a
171 (_ATTR_)(CC_PCR_Allocate *
172 (IS_IMPLEMENTED+HANDLE_1_USER+PP_COMMAND)), // 0x012b
173 (_ATTR_)(CC_PCR_SetAuthPolicy *
174 (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_USER+PP_COMMAND)), // 0x012c
175 (_ATTR_)(CC_PP_Commands *
176 (IS_IMPLEMENTED+HANDLE_1_USER+PP_REQUIRED)), // 0x012d
177 (_ATTR_)(CC_SetPrimaryPolicy *
178 (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_USER+PP_COMMAND)), // 0x012e
179 (_ATTR_)(CC_FieldUpgradeStart *
180 (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_ADMIN+PP_COMMAND)), // 0x012f
181 (_ATTR_)(CC_ClockRateAdjust *
182 (IS_IMPLEMENTED+HANDLE_1_USER+PP_COMMAND)), // 0x0130
183//
184 (_ATTR_)(CC_CreatePrimary *
185 (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_USER+PP_COMMAND+ENCRYPT_2+R_HANDLE)), // 0x0131
186 (_ATTR_)(CC_NV_GlobalWriteLock *
187 (IS_IMPLEMENTED+HANDLE_1_USER+PP_COMMAND)), // 0x0132
188 (_ATTR_)(CC_GetCommandAuditDigest *
189 (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_USER+HANDLE_2_USER+ENCRYPT_2)), // 0x0133
190 (_ATTR_)(CC_NV_Increment * (IS_IMPLEMENTED+HANDLE_1_USER)),
191 // 0x0134
192 (_ATTR_)(CC_NV_SetBits * (IS_IMPLEMENTED+HANDLE_1_USER)),
193 // 0x0135
194 (_ATTR_)(CC_NV_Extend *
195 (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_USER)), // 0x0136
196 (_ATTR_)(CC_NV_Write *
197 (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_USER)), // 0x0137
198 (_ATTR_)(CC_NV_WriteLock * (IS_IMPLEMENTED+HANDLE_1_USER)),
199 // 0x0138
200 (_ATTR_)(CC_DictionaryAttackLockReset * (IS_IMPLEMENTED+HANDLE_1_USER)),
201 // 0x0139
202 (_ATTR_)(CC_DictionaryAttackParameters * (IS_IMPLEMENTED+HANDLE_1_USER)),
203 // 0x013a
204 (_ATTR_)(CC_NV_ChangeAuth *
205 (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_ADMIN)), // 0x013b
206 (_ATTR_)(CC_PCR_Event *
207 (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_USER)), // 0x013c
208 (_ATTR_)(CC_PCR_Reset * (IS_IMPLEMENTED+HANDLE_1_USER)),
209 // 0x013d
210 (_ATTR_)(CC_SequenceComplete *
211 (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_USER+ENCRYPT_2)), // 0x013e
212 (_ATTR_)(CC_SetAlgorithmSet * (IS_IMPLEMENTED+HANDLE_1_USER)),
213 // 0x013f
214 (_ATTR_)(CC_SetCommandCodeAuditStatus *
215 (IS_IMPLEMENTED+HANDLE_1_USER+PP_COMMAND)), // 0x0140
216 (_ATTR_)(CC_FieldUpgradeData * (IS_IMPLEMENTED+DECRYPT_2)),
217 // 0x0141
218 (_ATTR_)(CC_IncrementalSelfTest * (IS_IMPLEMENTED)),
219 // 0x0142
220 (_ATTR_)(CC_SelfTest * (IS_IMPLEMENTED)),
221 // 0x0143
222 (_ATTR_)(CC_Startup * (IS_IMPLEMENTED+NO_SESSIONS)),
223 // 0x0144
224 (_ATTR_)(CC_Shutdown * (IS_IMPLEMENTED)),
225 // 0x0145
226 (_ATTR_)(CC_StirRandom * (IS_IMPLEMENTED+DECRYPT_2)),
227 // 0x0146
228 (_ATTR_)(CC_ActivateCredential *
229 (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_ADMIN+HANDLE_2_USER+ENCRYPT_2)), // 0x0147
230 (_ATTR_)(CC_Certify *
231 (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_ADMIN+HANDLE_2_USER+ENCRYPT_2)), // 0x0148
232 (_ATTR_)(CC_PolicyNV *
233 (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_USER)), // 0x0149
234 (_ATTR_)(CC_CertifyCreation *
235 (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_USER+ENCRYPT_2)), // 0x014a
236 (_ATTR_)(CC_Duplicate *
237 (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_DUP+ENCRYPT_2)), // 0x014b
238 (_ATTR_)(CC_GetTime *
239 (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_USER+HANDLE_2_USER+ENCRYPT_2)), // 0x014c
240 (_ATTR_)(CC_GetSessionAuditDigest *
241 (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_USER+HANDLE_2_USER+ENCRYPT_2)), // 0x014d
242 (_ATTR_)(CC_NV_Read *
243 (IS_IMPLEMENTED+HANDLE_1_USER+ENCRYPT_2)), // 0x014e
244 (_ATTR_)(CC_NV_ReadLock * (IS_IMPLEMENTED+HANDLE_1_USER)),
245 // 0x014f
246 (_ATTR_)(CC_ObjectChangeAuth *
247 (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_ADMIN+ENCRYPT_2)), // 0x0150
248 (_ATTR_)(CC_PolicySecret *
249 (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_USER+ENCRYPT_2)), // 0x0151
250 (_ATTR_)(CC_Rewrap *
251 (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_USER+ENCRYPT_2)), // 0x0152
252 (_ATTR_)(CC_Create *
253 (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_USER+ENCRYPT_2)), // 0x0153
254 (_ATTR_)(CC_ECDH_ZGen *
255 (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_USER+ENCRYPT_2)), // 0x0154
256 (_ATTR_)(CC_HMAC *
257 (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_USER+ENCRYPT_2)), // 0x0155
258 (_ATTR_)(CC_Import *
259 (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_USER+ENCRYPT_2)), // 0x0156
260 (_ATTR_)(CC_Load *
261 (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_USER+ENCRYPT_2+R_HANDLE)), // 0x0157
262 (_ATTR_)(CC_Quote *
263 (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_USER+ENCRYPT_2)), // 0x0158
264 (_ATTR_)(CC_RSA_Decrypt *
265 (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_USER+ENCRYPT_2)), // 0x0159
266 (_ATTR_) (NOT_IMPLEMENTED),
267 // 0x015a - Not assigned
268 (_ATTR_)(CC_HMAC_Start *
269 (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_USER+R_HANDLE)), // 0x015b
270 (_ATTR_)(CC_SequenceUpdate *
271 (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_USER)), // 0x015c
272 (_ATTR_)(CC_Sign *
273 (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_USER)), // 0x015d
274 (_ATTR_)(CC_Unseal *
275 (IS_IMPLEMENTED+HANDLE_1_USER+ENCRYPT_2)), // 0x015e
276 (_ATTR_) (NOT_IMPLEMENTED),
277 // 0x015f - Not assigned
278 (_ATTR_)(CC_PolicySigned * (IS_IMPLEMENTED+DECRYPT_2+ENCRYPT_2)),
279 // 0x0160
280 (_ATTR_)(CC_ContextLoad * (IS_IMPLEMENTED+NO_SESSIONS+R_HANDLE)),
281 // 0x0161
282 (_ATTR_)(CC_ContextSave * (IS_IMPLEMENTED+NO_SESSIONS)),
283 // 0x0162
284 (_ATTR_)(CC_ECDH_KeyGen * (IS_IMPLEMENTED+ENCRYPT_2)),
285 // 0x0163
286 (_ATTR_)(CC_EncryptDecrypt *
287 (IS_IMPLEMENTED+HANDLE_1_USER+ENCRYPT_2)), // 0x0164
288 (_ATTR_)(CC_FlushContext * (IS_IMPLEMENTED+NO_SESSIONS)),
289 // 0x0165
290 (_ATTR_) (NOT_IMPLEMENTED),
291 // 0x0166 - Not assigned
292 (_ATTR_)(CC_LoadExternal *
293 (IS_IMPLEMENTED+DECRYPT_2+ENCRYPT_2+R_HANDLE)), // 0x0167
294 (_ATTR_)(CC_MakeCredential * (IS_IMPLEMENTED+DECRYPT_2+ENCRYPT_2)),
295 // 0x0168
296 (_ATTR_)(CC_NV_ReadPublic * (IS_IMPLEMENTED+ENCRYPT_2)),
297 // 0x0169
298 (_ATTR_)(CC_PolicyAuthorize * (IS_IMPLEMENTED+DECRYPT_2)),
299 // 0x016a
300 (_ATTR_)(CC_PolicyAuthValue * (IS_IMPLEMENTED)),
301 // 0x016b
302 (_ATTR_)(CC_PolicyCommandCode * (IS_IMPLEMENTED)),
303 // 0x016c
304 (_ATTR_)(CC_PolicyCounterTimer * (IS_IMPLEMENTED+DECRYPT_2)),
305 // 0x016d
306 (_ATTR_)(CC_PolicyCpHash * (IS_IMPLEMENTED+DECRYPT_2)),
307 // 0x016e
308 (_ATTR_)(CC_PolicyLocality * (IS_IMPLEMENTED)),
309 // 0x016f
310 (_ATTR_)(CC_PolicyNameHash * (IS_IMPLEMENTED+DECRYPT_2)),
311 // 0x0170
312 (_ATTR_)(CC_PolicyOR * (IS_IMPLEMENTED)),
313 // 0x0171
314 (_ATTR_)(CC_PolicyTicket * (IS_IMPLEMENTED+DECRYPT_2)),
315 // 0x0172
316 (_ATTR_)(CC_ReadPublic * (IS_IMPLEMENTED+ENCRYPT_2)),
317 // 0x0173
318 (_ATTR_)(CC_RSA_Encrypt * (IS_IMPLEMENTED+DECRYPT_2+ENCRYPT_2)),
319 // 0x0174
320 (_ATTR_) (NOT_IMPLEMENTED),
321 // 0x0175 - Not assigned
322 (_ATTR_)(CC_StartAuthSession *
323 (IS_IMPLEMENTED+DECRYPT_2+ENCRYPT_2+R_HANDLE)), // 0x0176
324 (_ATTR_)(CC_VerifySignature * (IS_IMPLEMENTED+DECRYPT_2)),
325 // 0x0177
326 (_ATTR_)(CC_ECC_Parameters * (IS_IMPLEMENTED)),
327 // 0x0178
328 (_ATTR_)(CC_FirmwareRead * (IS_IMPLEMENTED+ENCRYPT_2)),
329 // 0x0179
330 (_ATTR_)(CC_GetCapability * (IS_IMPLEMENTED)),
331 // 0x017a
332 (_ATTR_)(CC_GetRandom * (IS_IMPLEMENTED+ENCRYPT_2)),
333 // 0x017b
334 (_ATTR_)(CC_GetTestResult * (IS_IMPLEMENTED+ENCRYPT_2)),
335 // 0x017c
336 (_ATTR_)(CC_Hash * (IS_IMPLEMENTED+DECRYPT_2+ENCRYPT_2)),
337 // 0x017d
338 (_ATTR_)(CC_PCR_Read * (IS_IMPLEMENTED)),
339 // 0x017e
340 (_ATTR_)(CC_PolicyPCR * (IS_IMPLEMENTED+DECRYPT_2)),
341 // 0x017f
342 (_ATTR_)(CC_PolicyRestart * (IS_IMPLEMENTED)),
343 // 0x0180
344 (_ATTR_)(CC_ReadClock * (IS_IMPLEMENTED+NO_SESSIONS)),
345 // 0x0181
346 (_ATTR_)(CC_PCR_Extend * (IS_IMPLEMENTED+HANDLE_1_USER)),
347 // 0x0182
348 (_ATTR_)(CC_PCR_SetAuthValue *
349 (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_USER)), // 0x0183
350 (_ATTR_)(CC_NV_Certify *
351 (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_USER+HANDLE_2_USER+ENCRYPT_2)), // 0x0184
352 (_ATTR_)(CC_EventSequenceComplete *
353 (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_USER+HANDLE_2_USER)), // 0x0185
354 (_ATTR_)(CC_HashSequenceStart * (IS_IMPLEMENTED+DECRYPT_2+R_HANDLE)),
355 // 0x0186
356 (_ATTR_)(CC_PolicyPhysicalPresence * (IS_IMPLEMENTED)),
357 // 0x0187
358 (_ATTR_)(CC_PolicyDuplicationSelect * (IS_IMPLEMENTED+DECRYPT_2)),
359 // 0x0188
360 (_ATTR_)(CC_PolicyGetDigest * (IS_IMPLEMENTED+ENCRYPT_2)),
361 // 0x0189
362 (_ATTR_)(CC_TestParms * (IS_IMPLEMENTED)),
363 // 0x018a
364 (_ATTR_)(CC_Commit *
365 (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_USER+ENCRYPT_2)), // 0x018b
366 (_ATTR_)(CC_PolicyPassword * (IS_IMPLEMENTED)),
367 // 0x018c
368 (_ATTR_)(CC_ZGen_2Phase *
369 (IS_IMPLEMENTED+DECRYPT_2+HANDLE_1_USER+ENCRYPT_2)), // 0x018d
370 (_ATTR_)(CC_EC_Ephemeral * (IS_IMPLEMENTED+ENCRYPT_2)),
371 // 0x018e
372 (_ATTR_)(CC_PolicyNvWritten * (IS_IMPLEMENTED))
373 // 0x018f
374};
Namyoon Woo65994902019-10-31 10:38:51 -0700375
376// CommandAttributes for extended commands
377static const COMMAND_ATTRIBUTES s_commandAttributesExt [] = {
Namyoon Woof4428142019-10-30 19:02:58 -0700378 (_ATTR_)(CCE_PolicyFidoSigned * (IS_IMPLEMENTED+DECRYPT_2+ENCRYPT_2)),
Namyoon Woo65994902019-10-31 10:38:51 -0700379};