1mod rc;
6
7pub use self::rc::*;
8
9use crate::tpm_enum;
10
11tpm_enum! {
12 #[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Copy, Clone, Hash, Default)]
13 pub enum TpmAlgId(TpmUint16) {
14 (Error, 0x0000, "TPM_ALG_ERROR"),
15 (Rsa, 0x0001, "TPM_ALG_RSA"),
16 (Tdes, 0x0003, "TPM_ALG_TDES"),
17 (Sha1, 0x0004, "TPM_ALG_SHA1"),
18 (Hmac, 0x0005, "TPM_ALG_HMAC"),
19 (Aes, 0x0006, "TPM_ALG_AES"),
20 (Mgf1, 0x0007, "TPM_ALG_MGF1"),
21 (KeyedHash, 0x0008, "TPM_ALG_KEYEDHASH"),
22 (Xor, 0x000A, "TPM_ALG_XOR"),
23 (Sha256, 0x000B, "TPM_ALG_SHA256"),
24 (Sha384, 0x000C, "TPM_ALG_SHA384"),
25 (Sha512, 0x000D, "TPM_ALG_SHA512"),
26 #[default]
27 (Null, 0x0010, "TPM_ALG_NULL"),
28 (Sm3_256, 0x0012, "TPM_ALG_SM3_256"),
29 (Sm4, 0x0013, "TPM_ALG_SM4"),
30 (Rsassa, 0x0014, "TPM_ALG_RSASSA"),
31 (Rsaes, 0x0015, "TPM_ALG_RSAES"),
32 (Rsapss, 0x0016, "TPM_ALG_RSAPSS"),
33 (Oaep, 0x0017, "TPM_ALG_OAEP"),
34 (Ecdsa, 0x0018, "TPM_ALG_ECDSA"),
35 (Ecdh, 0x0019, "TPM_ALG_ECDH"),
36 (Ecdaa, 0x001A, "TPM_ALG_ECDAA"),
37 (Sm2, 0x001B, "TPM_ALG_SM2"),
38 (Ecschnorr, 0x001C, "TPM_ALG_ECSCHNORR"),
39 (Ecmqv, 0x001D, "TPM_ALG_ECMQV"),
40 (Kdf1Sp800_56A, 0x0020, "TPM_ALG_KDF1_SP800_56A"),
41 (Kdf2, 0x0021, "TPM_ALG_KDF2"),
42 (Kdf1Sp800_108, 0x0022, "TPM_ALG_KDF1_SP800_108"),
43 (Ecc, 0x0023, "TPM_ALG_ECC"),
44 (SymCipher, 0x0025, "TPM_ALG_SYMCIPHER"),
45 (Camellia, 0x0026, "TPM_ALG_CAMELLIA"),
46 (Sha3_256, 0x0027, "TPM_ALG_SHA3_256"),
47 (Sha3_384, 0x0028, "TPM_ALG_SHA3_384"),
48 (Sha3_512, 0x0029, "TPM_ALG_SHA3_512"),
49 (Shake128, 0x002A, "TPM_ALG_SHAKE_128"),
50 (Shake256, 0x002B, "TPM_ALG_SHAKE_256"),
51 (Shake256_192, 0x002C, "TPM_ALG_SHAKE_256_192"),
52 (Shake256_256, 0x002D, "TPM_ALG_SHAKE_256_256"),
53 (Shake256_512, 0x002E, "TPM_ALG_SHAKE_256_512"),
54 (Cmac, 0x003F, "TPM_ALG_CMAC"),
55 (Ctr, 0x0040, "TPM_ALG_CTR"),
56 (Ofb, 0x0041, "TPM_ALG_OFB"),
57 (Cbc, 0x0042, "TPM_ALG_CBC"),
58 (Cfb, 0x0043, "TPM_ALG_CFB"),
59 (Ecb, 0x0044, "TPM_ALG_ECB"),
60 (Ccm, 0x0050, "TPM_ALG_CCM"),
61 (Gcm, 0x0051, "TPM_ALG_GCM"),
62 (Kw, 0x0052, "TPM_ALG_KW"),
63 (Kwp, 0x0053, "TPM_ALG_KWP"),
64 (Eax, 0x0054, "TPM_ALG_EAX"),
65 (Eddsa, 0x0060, "TPM_ALG_EDDSA"),
66 (EddsaPh, 0x0061, "TPM_ALG_EDDSA_PH"),
67 (Lms, 0x0070, "TPM_ALG_LMS"),
68 (Xmss, 0x0071, "TPM_ALG_XMSS"),
69 (Keyedxof, 0x0080, "TPM_ALG_KEYEDXOF"),
70 (Kmacxof128, 0x0081, "TPM_ALG_KMACXOF128"),
71 (Kmacxof256, 0x0082, "TPM_ALG_KMACXOF256"),
72 (Kmac128, 0x0090, "TPM_ALG_KMAC128"),
73 (Kmac256, 0x0091, "TPM_ALG_KMAC256"),
74 }
75}
76
77pub type TpmiAlgCipherMode = TpmAlgId;
78
79tpm_enum! {
80 #[derive(Debug, Default, PartialEq, Eq, Copy, Clone, Hash)]
81 pub enum TpmAt(TpmUint32) {
82 #[default]
83 (Any, 0x0000_0000, "TPM_AT_ANY"),
84 (Error, 0x0000_0001, "TPM_AT_ERROR"),
85 (Pv1, 0x0000_0002, "TPM_AT_PV1"),
86 (Vend, 0x8000_0000, "TPM_AT_VEND"),
87 }
88}
89
90tpm_enum! {
91 #[derive(Debug, PartialEq, Eq, Copy, Clone, Hash)]
92 pub enum TpmCap(TpmUint32) {
93 (Algs, 0x0000_0000, "TPM_CAP_ALGS"),
94 (Handles, 0x0000_0001, "TPM_CAP_HANDLES"),
95 (Commands, 0x0000_0002, "TPM_CAP_COMMANDS"),
96 (PpCommands, 0x0000_0003, "TPM_CAP_PP_COMMANDS"),
97 (AuditCommands, 0x0000_0004, "TPM_CAP_AUDIT_COMMANDS"),
98 (Pcrs, 0x0000_0005, "TPM_CAP_PCRS"),
99 (TpmProperties, 0x0000_0006, "TPM_CAP_TPM_PROPERTIES"),
100 (PcrProperties, 0x0000_0007, "TPM_CAP_PCR_PROPERTIES"),
101 (EccCurves, 0x0000_0008, "TPM_CAP_ECC_CURVES"),
102 (AuthPolicies, 0x0000_0009, "TPM_CAP_AUTH_POLICIES"),
103 (Act, 0x0000_000A, "TPM_CAP_ACT"),
104 (VendorProperty, 0x0000_0100, "TPM_CAP_VENDOR_PROPERTY"),
105 }
106}
107
108tpm_enum! {
109 #[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Copy, Clone, Hash)]
110 pub enum TpmCc(TpmUint32) {
111 (NvUndefineSpaceSpecial, 0x0000_011F, "TPM_CC_NV_UndefineSpaceSpecial"),
112 (EvictControl, 0x0000_0120, "TPM_CC_EvictControl"),
113 (HierarchyControl, 0x0000_0121, "TPM_CC_HierarchyControl"),
114 (NvUndefineSpace, 0x0000_0122, "TPM_CC_NV_UndefineSpace"),
115 (ChangeEps, 0x0000_0124, "TPM_CC_ChangeEPS"),
116 (ChangePps, 0x0000_0125, "TPM_CC_ChangePPS"),
117 (Clear, 0x0000_0126, "TPM_CC_Clear"),
118 (ClearControl, 0x0000_0127, "TPM_CC_ClearControl"),
119 (ClockSet, 0x0000_0128, "TPM_CC_ClockSet"),
120 (HierarchyChangeAuth, 0x0000_0129, "TPM_CC_HierarchyChangeAuth"),
121 (NvDefineSpace, 0x0000_012A, "TPM_CC_NV_DefineSpace"),
122 (PcrAllocate, 0x0000_012B, "TPM_CC_PCR_Allocate"),
123 (PcrSetAuthPolicy, 0x0000_012C, "TPM_CC_PCR_SetAuthPolicy"),
124 (PpCommands, 0x0000_012D, "TPM_CC_PP_Commands"),
125 (SetPrimaryPolicy, 0x0000_012E, "TPM_CC_SetPrimaryPolicy"),
126 (FieldUpgradeStart, 0x0000_012F, "TPM_CC_FieldUpgradeStart"),
127 (ClockRateAdjust, 0x0000_0130, "TPM_CC_ClockRateAdjust"),
128 (CreatePrimary, 0x0000_0131, "TPM_CC_CreatePrimary"),
129 (NvGlobalWriteLock, 0x0000_0132, "TPM_CC_NV_GlobalWriteLock"),
130 (GetCommandAuditDigest, 0x0000_0133, "TPM_CC_GetCommandAuditDigest"),
131 (NvIncrement, 0x0000_0134, "TPM_CC_NV_Increment"),
132 (NvSetBits, 0x0000_0135, "TPM_CC_NV_SetBits"),
133 (NvExtend, 0x0000_0136, "TPM_CC_NV_Extend"),
134 (NvWrite, 0x0000_0137, "TPM_CC_NV_Write"),
135 (NvWriteLock, 0x0000_0138, "TPM_CC_NV_WriteLock"),
136 (DictionaryAttackLockReset, 0x0000_0139, "TPM_CC_DictionaryAttackLockReset"),
137 (DictionaryAttackParameters, 0x0000_013A, "TPM_CC_DictionaryAttackParameters"),
138 (NvChangeAuth, 0x0000_013B, "TPM_CC_NV_ChangeAuth"),
139 (PcrEvent, 0x0000_013C, "TPM_CC_PCR_Event"),
140 (PcrReset, 0x0000_013D, "TPM_CC_PCR_Reset"),
141 (SequenceComplete, 0x0000_013E, "TPM_CC_SequenceComplete"),
142 (SetAlgorithmSet, 0x0000_013F, "TPM_CC_SetAlgorithmSet"),
143 (SetCommandCodeAuditStatus, 0x0000_0140, "TPM_CC_SetCommandCodeAuditStatus"),
144 (FieldUpgradeData, 0x0000_0141, "TPM_CC_FieldUpgradeData"),
145 (IncrementalSelfTest, 0x0000_0142, "TPM_CC_IncrementalSelfTest"),
146 (SelfTest, 0x0000_0143, "TPM_CC_SelfTest"),
147 (Startup, 0x0000_0144, "TPM_CC_Startup"),
148 (Shutdown, 0x0000_0145, "TPM_CC_Shutdown"),
149 (StirRandom, 0x0000_0146, "TPM_CC_StirRandom"),
150 (ActivateCredential, 0x0000_0147, "TPM_CC_ActivateCredential"),
151 (Certify, 0x0000_0148, "TPM_CC_Certify"),
152 (PolicyNv, 0x0000_0149, "TPM_CC_PolicyNV"),
153 (CertifyCreation, 0x0000_014A, "TPM_CC_CertifyCreation"),
154 (Duplicate, 0x0000_014B, "TPM_CC_Duplicate"),
155 (GetTime, 0x0000_014C, "TPM_CC_GetTime"),
156 (GetSessionAuditDigest, 0x0000_014D, "TPM_CC_GetSessionAuditDigest"),
157 (NvRead, 0x0000_014E, "TPM_CC_NV_Read"),
158 (NvReadLock, 0x0000_014F, "TPM_CC_NV_ReadLock"),
159 (ObjectChangeAuth, 0x0000_0150, "TPM_CC_ObjectChangeAuth"),
160 (PolicySecret, 0x0000_0151, "TPM_CC_PolicySecret"),
161 (Rewrap, 0x0000_0152, "TPM_CC_Rewrap"),
162 (Create, 0x0000_0153, "TPM_CC_Create"),
163 (EcdhZGen, 0x0000_0154, "TPM_CC_ECDH_ZGen"),
164 (Hmac, 0x0000_0155, "TPM_CC_HMAC"),
165 (Import, 0x0000_0156, "TPM_CC_Import"),
166 (Load, 0x0000_0157, "TPM_CC_Load"),
167 (Quote, 0x0000_0158, "TPM_CC_Quote"),
168 (RsaDecrypt, 0x0000_0159, "TPM_CC_RSA_Decrypt"),
169 (HmacStart, 0x0000_015B, "TPM_CC_HMAC_Start"),
170 (SequenceUpdate, 0x0000_015C, "TPM_CC_SequenceUpdate"),
171 (Sign, 0x0000_015D, "TPM_CC_Sign"),
172 (Unseal, 0x0000_015E, "TPM_CC_Unseal"),
173 (PolicySigned, 0x0000_0160, "TPM_CC_PolicySigned"),
174 (ContextLoad, 0x0000_0161, "TPM_CC_ContextLoad"),
175 (ContextSave, 0x0000_0162, "TPM_CC_ContextSave"),
176 (EcdhKeyGen, 0x0000_0163, "TPM_CC_ECDH_KeyGen"),
177 (EncryptDecrypt, 0x0000_0164, "TPM_CC_EncryptDecrypt"),
178 (FlushContext, 0x0000_0165, "TPM_CC_FlushContext"),
179 (LoadExternal, 0x0000_0167, "TPM_CC_LoadExternal"),
180 (MakeCredential, 0x0000_0168, "TPM_CC_MakeCredential"),
181 (NvReadPublic, 0x0000_0169, "TPM_CC_NV_ReadPublic"),
182 (PolicyAuthorize, 0x0000_016A, "TPM_CC_PolicyAuthorize"),
183 (PolicyAuthValue, 0x0000_016B, "TPM_CC_PolicyAuthValue"),
184 (PolicyCommandCode, 0x0000_016C, "TPM_CC_PolicyCommandCode"),
185 (PolicyCounterTimer, 0x0000_016D, "TPM_CC_PolicyCounterTimer"),
186 (PolicyCpHash, 0x0000_016E, "TPM_CC_PolicyCpHash"),
187 (PolicyLocality, 0x0000_016F, "TPM_CC_PolicyLocality"),
188 (PolicyNameHash, 0x0000_0170, "TPM_CC_PolicyNameHash"),
189 (PolicyOr, 0x0000_0171, "TPM_CC_PolicyOr"),
190 (PolicyTicket, 0x0000_0172, "TPM_CC_PolicyTicket"),
191 (ReadPublic, 0x0000_0173, "TPM_CC_ReadPublic"),
192 (RsaEncrypt, 0x0000_0174, "TPM_CC_RSA_Encrypt"),
193 (StartAuthSession, 0x0000_0176, "TPM_CC_StartAuthSession"),
194 (VerifySignature, 0x0000_0177, "TPM_CC_VerifySignature"),
195 (EccParameters, 0x0000_0178, "TPM_CC_ECC_Parameters"),
196 (FirmwareRead, 0x0000_0179, "TPM_CC_FirmwareRead"),
197 (GetCapability, 0x0000_017A, "TPM_CC_GetCapability"),
198 (GetRandom, 0x0000_017B, "TPM_CC_GetRandom"),
199 (GetTestResult, 0x0000_017C, "TPM_CC_GetTestResult"),
200 (Hash, 0x0000_017D, "TPM_CC_Hash"),
201 (PcrRead, 0x0000_017E, "TPM_CC_PCR_Read"),
202 (PolicyPcr, 0x0000_017F, "TPM_CC_PolicyPCR"),
203 (PolicyRestart, 0x0000_0180, "TPM_CC_PolicyRestart"),
204 (ReadClock, 0x0000_0181, "TPM_CC_ReadClock"),
205 (PcrExtend, 0x0000_0182, "TPM_CC_PCR_Extend"),
206 (PcrSetAuthValue, 0x0000_0183, "TPM_CC_PCR_SetAuthValue"),
207 (NvCertify, 0x0000_0184, "TPM_CC_NV_Certify"),
208 (EventSequenceComplete, 0x0000_0185, "TPM_CC_EventSequenceComplete"),
209 (HashSequenceStart, 0x0000_0186, "TPM_CC_HashSequenceStart"),
210 (PolicyPhysicalPresence, 0x0000_0187, "TPM_CC_PolicyPhysicalPresence"),
211 (PolicyDuplicationSelect, 0x0000_0188, "TPM_CC_PolicyDuplicationSelect"),
212 (PolicyGetDigest, 0x0000_0189, "TPM_CC_PolicyGetDigest"),
213 (TestParms, 0x0000_018A, "TPM_CC_TestParms"),
214 (Commit, 0x0000_018B, "TPM_CC_Commit"),
215 (PolicyPassword, 0x0000_018C, "TPM_CC_PolicyPassword"),
216 (ZGen2Phase, 0x0000_018D, "TPM_CC_ZGen_2Phase"),
217 (EcEphemeral, 0x0000_018E, "TPM_CC_EC_Ephemeral"),
218 (PolicyNvWritten, 0x0000_018F, "TPM_CC_PolicyNvWritten"),
219 (PolicyTemplate, 0x0000_0190, "TPM_CC_PolicyTemplate"),
220 (CreateLoaded, 0x0000_0191, "TPM_CC_CreateLoaded"),
221 (PolicyAuthorizeNv, 0x0000_0192, "TPM_CC_PolicyAuthorizeNV"),
222 (EncryptDecrypt2, 0x0000_0193, "TPM_CC_EncryptDecrypt2"),
223 (AcGetCapability, 0x0000_0194, "TPM_CC_AcGetCapability"),
224 (AcSend, 0x0000_0195, "TPM_CC_AcSend"),
225 (PolicyAcSendSelect, 0x0000_0196, "TPM_CC_Policy_AC_SendSelect"),
226 (ActSetTimeout, 0x0000_0198, "TPM2_ACT_SetTimeout"),
227 (EccEncrypt, 0x0000_0199, "TPM_CC_ECC_Encrypt"),
228 (EccDecrypt, 0x0000_019A, "TPM_CC_ECC_Decrypt"),
229 (PolicyCapability, 0x0000_019B, "TPM_CC_PolicyCapability"),
230 (PolicyParameters, 0x0000_019C, "TPM_CC_PolicyParameters"),
231 (NvDefineSpace2, 0x0000_019D, "TPM_CC_NV_DefineSpace2"),
232 (NvReadPublic2, 0x0000_019E, "TPM_CC_NV_ReadPublic2"),
233 (SetCapability, 0x0000_019F, "TPM_CC_SetCapability"),
234 (ReadOnlyControl, 0x0000_01A0, "TPM_CC_ReadOnlyControl"),
235 (PolicyTransportSpdm, 0x0000_01A1, "TPM_CC_Policy_TransportSPDM"),
236 (VendorTcgTest, 0x2000_0000, "TPM_CC_Vendor_TCG_Test"),
237 }
238}
239
240tpm_enum! {
241 #[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Copy, Clone, Hash, Default)]
242 pub enum TpmClockAdjust(TpmInt8) {
243 (CoarseSlower, -3, "TPM_CLOCK_COARSE_SLOWER"),
244 (MediumSlower, -2, "TPM_CLOCK_MEDIUM_SLOWER"),
245 (FineSlower, -1, "TPM_CLOCK_FINE_SLOWER"),
246 #[default]
247 (NoChange, 0, "TPM_CLOCK_NO_CHANGE"),
248 (FineFaster, 1, "TPM_CLOCK_FINE_FASTER"),
249 (MediumFaster, 2, "TPM_CLOCK_MEDIUM_FASTER"),
250 (CoarseFaster, 3, "TPM_CLOCK_COARSE_FASTER"),
251 }
252}
253
254tpm_enum! {
255 #[derive(Debug, Default, PartialEq, Eq, Copy, Clone, Hash)]
256 pub enum TpmEo(TpmUint16) {
257 #[default]
258 (Eq, 0x0000, "TPM_EO_EQ"),
259 (Neq, 0x0001, "TPM_EO_NEQ"),
260 (SignedGt, 0x0002, "TPM_EO_SIGNED_GT"),
261 (UnsignedGt, 0x0003, "TPM_EO_UNSIGNED_GT"),
262 (SignedLt, 0x0004, "TPM_EO_SIGNED_LT"),
263 (UnsignedLt, 0x0005, "TPM_EO_UNSIGNED_LT"),
264 (SignedGe, 0x0006, "TPM_EO_SIGNED_GE"),
265 (UnsignedGe, 0x0007, "TPM_EO_UNSIGNED_GE"),
266 (SignedLe, 0x0008, "TPM_EO_SIGNED_LE"),
267 (UnsignedLe, 0x0009, "TPM_EO_UNSIGNED_LE"),
268 (Bitset, 0x000A, "TPM_EO_BITSET"),
269 (Bitclear, 0x000B, "TPM_EO_BITCLEAR"),
270 }
271}
272
273tpm_enum! {
274 #[derive(Debug, Default, PartialEq, Eq, Clone, Copy, Hash)]
275 pub enum TpmEccCurve(TpmUint16) {
276 #[default]
277 (None, 0x0000, "TPM_ECC_NONE"),
278 (NistP192, 0x0001, "TPM_ECC_NIST_P192"),
279 (NistP224, 0x0002, "TPM_ECC_NIST_P224"),
280 (NistP256, 0x0003, "TPM_ECC_NIST_P256"),
281 (NistP384, 0x0004, "TPM_ECC_NIST_P384"),
282 (NistP521, 0x0005, "TPM_ECC_NIST_P521"),
283 (BnP256, 0x0010, "TPM_ECC_BN_P256"),
284 (BnP638, 0x0011, "TPM_ECC_BN_P638"),
285 (Sm2P256, 0x0020, "TPM_ECC_SM2_P256"),
286 (BpP256R1, 0x0030, "TPM_ECC_BP_P256_R1"),
287 (BpP384R1, 0x0031, "TPM_ECC_BP_P384_R1"),
288 (BpP512R1, 0x0032, "TPM_ECC_BP_P512_R1"),
289 (Curve25519, 0x0040, "TPM_ECC_CURVE_25519"),
290 (Curve448, 0x0041, "TPM_ECC_CURVE_448"),
291 }
292}
293
294tpm_enum! {
295 #[derive(Debug, PartialEq, Eq, Copy, Clone, Hash)]
296 pub enum TpmHt(TpmUint8) {
297 (Pcr, 0x00, "TPM_HT_PCR"),
298 (NvIndex, 0x01, "TPM_HT_NV_INDEX"),
299 (HmacSession, 0x02, "TPM_HT_HMAC_SESSION"),
300 (PolicySession, 0x03, "TPM_HT_POLICY_SESSION"),
301 (ExternalNv, 0x11, "TPM_HT_EXTERNAL_NV"),
302 (PermanentNv, 0x12, "TPM_HT_PERMANENT_NV"),
303 (Permanent, 0x40, "TPM_HT_PERMANENT"),
304 (Transient, 0x80, "TPM_HT_TRANSIENT"),
305 (Persistent, 0x81, "TPM_HT_PERSISTENT"),
306 (Ac, 0x90, "TPM_HT_AC"),
307 }
308}
309
310impl TpmHt {
311 pub const LOADED_SESSION: TpmHt = TpmHt::HmacSession;
312 pub const SAVED_SESSION: TpmHt = TpmHt::PolicySession;
313}
314
315tpm_enum! {
316 #[derive(Debug, PartialEq, Eq, Copy, Clone, Hash)]
317 pub enum TpmPt(TpmUint32) {
318 (FamilyIndicator, 0x100, "TPM_PT_FAMILY_INDICATOR"),
319 (Level, 0x101, "TPM_PT_LEVEL"),
320 (Revision, 0x102, "TPM_PT_REVISION"),
321 (DayOfYear, 0x103, "TPM_PT_DAY_OF_YEAR"),
322 (Year, 0x104, "TPM_PT_YEAR"),
323 (Manufacturer, 0x105, "TPM_PT_MANUFACTURER"),
324 (VendorString1, 0x106, "TPM_PT_VENDOR_STRING_1"),
325 (VendorString2, 0x107, "TPM_PT_VENDOR_STRING_2"),
326 (VendorString3, 0x108, "TPM_PT_VENDOR_STRING_3"),
327 (VendorString4, 0x109, "TPM_PT_VENDOR_STRING_4"),
328 (VendorTpmType, 0x10A, "TPM_PT_VENDOR_TPM_TYPE"),
329 (FirmwareVersion1, 0x10B, "TPM_PT_FIRMWARE_VERSION_1"),
330 (FirmwareVersion2, 0x10C, "TPM_PT_FIRMWARE_VERSION_2"),
331 (InputBuffer, 0x10D, "TPM_PT_INPUT_BUFFER"),
332 (HrTransientMin, 0x10E, "TPM_PT_HR_TRANSIENT_MIN"),
333 (HrPersistentMin, 0x10F, "TPM_PT_HR_PERSISTENT_MIN"),
334 (HrLoadedMin, 0x110, "TPM_PT_HR_LOADED_MIN"),
335 (ActiveSessionsMax, 0x111, "TPM_PT_ACTIVE_SESSIONS_MAX"),
336 (PcrCount, 0x112, "TPM_PT_PCR_COUNT"),
337 (PcrSelectMin, 0x113, "TPM_PT_PCR_SELECT_MIN"),
338 (ContextGapMax, 0x114, "TPM_PT_CONTEXT_GAP_MAX"),
339 (NvCountersMax, 0x116, "TPM_PT_NV_COUNTERS_MAX"),
340 (NvIndexMax, 0x117, "TPM_PT_NV_INDEX_MAX"),
341 (Memory, 0x118, "TPM_PT_MEMORY"),
342 (ClockUpdate, 0x119, "TPM_PT_CLOCK_UPDATE"),
343 (ContextHash, 0x11A, "TPM_PT_CONTEXT_HASH"),
344 (ContextSym, 0x11B, "TPM_PT_CONTEXT_SYM"),
345 (ContextSymSize, 0x11C, "TPM_PT_CONTEXT_SYM_SIZE"),
346 (OrderlyCount, 0x11D, "TPM_PT_ORDERLY_COUNT"),
347 (MaxCommandSize, 0x11E, "TPM_PT_MAX_COMMAND_SIZE"),
348 (MaxResponseSize, 0x11F, "TPM_PT_MAX_RESPONSE_SIZE"),
349 (MaxDigest, 0x120, "TPM_PT_MAX_DIGEST"),
350 (MaxObjectContext, 0x121, "TPM_PT_MAX_OBJECT_CONTEXT"),
351 (MaxSessionContext, 0x122, "TPM_PT_MAX_SESSION_CONTEXT"),
352 (PsFamilyIndicator, 0x123, "TPM_PT_PS_FAMILY_INDICATOR"),
353 (PsLevel, 0x124, "TPM_PT_PS_LEVEL"),
354 (PsRevision, 0x125, "TPM_PT_PS_REVISION"),
355 (PsDayOfYear, 0x126, "TPM_PT_PS_DAY_OF_YEAR"),
356 (PsYear, 0x127, "TPM_PT_PS_YEAR"),
357 (SplitMax, 0x128, "TPM_PT_SPLIT_MAX"),
358 (TotalCommands, 0x129, "TPM_PT_TOTAL_COMMANDS"),
359 (LibraryCommands, 0x12A, "TPM_PT_LIBRARY_COMMANDS"),
360 (VendorCommands, 0x12B, "TPM_PT_VENDOR_COMMANDS"),
361 (NvBufferMax, 0x12C, "TPM_PT_NV_BUFFER_MAX"),
362 (Modes, 0x12D, "TPM_PT_MODES"),
363 (MaxCapBuffer, 0x12E, "TPM_PT_MAX_CAP_BUFFER"),
364 (Permanent, 0x200, "TPM_PT_PERMANENT"),
365 (StartupClear, 0x201, "TPM_PT_STARTUP_CLEAR"),
366 (HrNvIndex, 0x202, "TPM_PT_HR_NV_INDEX"),
367 (HrLoaded, 0x203, "TPM_PT_HR_LOADED"),
368 (HrLoadedAvail, 0x204, "TPM_PT_HR_LOADED_AVAIL"),
369 (HrActive, 0x205, "TPM_PT_HR_ACTIVE"),
370 (HrActiveAvail, 0x206, "TPM_PT_HR_ACTIVE_AVAIL"),
371 (HrTransientAvail, 0x207, "TPM_PT_HR_TRANSIENT_AVAIL"),
372 (HrPersistent, 0x208, "TPM_PT_HR_PERSISTENT"),
373 (HrPersistentAvail, 0x209, "TPM_PT_HR_PERSISTENT_AVAIL"),
374 (NvCounters, 0x20A, "TPM_PT_NV_COUNTERS"),
375 (NvCountersAvail, 0x20B, "TPM_PT_NV_COUNTERS_AVAIL"),
376 (AlgorithmSet, 0x20C, "TPM_PT_ALGORITHM_SET"),
377 (LoadedCurves, 0x20D, "TPM_PT_LOADED_CURVES"),
378 (LockoutCounter, 0x20E, "TPM_PT_LOCKOUT_COUNTER"),
379 (MaxAuthFail, 0x20F, "TPM_PT_MAX_AUTH_FAIL"),
380 (LockoutInterval, 0x210, "TPM_PT_LOCKOUT_INTERVAL"),
381 (LockoutRecovery, 0x211, "TPM_PT_LOCKOUT_RECOVERY"),
382 (NvWriteRecovery, 0x212, "TPM_PT_NV_WRITE_RECOVERY"),
383 (AuditCounter0, 0x213, "TPM_PT_AUDIT_COUNTER_0"),
384 (AuditCounter1, 0x214, "TPM_PT_AUDIT_COUNTER_1"),
385 }
386}
387
388tpm_enum! {
389 #[derive(Debug, Default, PartialEq, Eq, Copy, Clone, Hash)]
390 pub enum TpmRh(TpmUint32) {
391 (Srk, 0x4000_0000, "TPM_RH_SRK"),
392 (Owner, 0x4000_0001, "TPM_RH_OWNER"),
393 (Revoke, 0x4000_0002, "TPM_RH_REVOKE"),
394 (Transport, 0x4000_0003, "TPM_RH_TRANSPORT"),
395 (Operator, 0x4000_0004, "TPM_RH_OPERATOR"),
396 (Admin, 0x4000_0005, "TPM_RH_ADMIN"),
397 (Ek, 0x4000_0006, "TPM_RH_EK"),
398 #[default]
399 (Null, 0x4000_0007, "TPM_RH_NULL"),
400 (Unassigned, 0x4000_0008, "TPM_RH_UNASSIGNED"),
401 (Pw, 0x4000_0009, "TPM_RS_PW"),
402 (Lockout, 0x4000_000A, "TPM_RH_LOCKOUT"),
403 (Endorsement, 0x4000_000B, "TPM_RH_ENDORSEMENT"),
404 (Platform, 0x4000_000C, "TPM_RH_PLATFORM"),
405 (PlatformNv, 0x4000_000D, "TPM_RH_PLATFORM_NV"),
406 (FwOwner, 0x4000_0140, "TPM_RH_FW_OWNER"),
407 (FwEndorsement, 0x4000_0141, "TPM_RH_FW_ENDORSEMENT"),
408 (FwPlatform, 0x4000_0142, "TPM_RH_FW_PLATFORM"),
409 (FwNull, 0x4000_0143, "TPM_RH_FW_NULL"),
410 (SvnOwnerBase, 0x4001_0000, "TPM_RH_SVN_OWNER_BASE"),
411 (SvnEndorsementBase, 0x4002_0000, "TPM_RH_SVN_ENDORSEMENT_BASE"),
412 (SvnPlatformBase, 0x4003_0000, "TPM_RH_SVN_PLATFORM_BASE"),
413 (SvnNullBase, 0x4004_0000, "TPM_RH_SVN_NULL_BASE"),
414 }
415}
416
417tpm_enum! {
418 #[derive(Debug, PartialEq, Eq, Copy, Clone, Hash)]
419 pub enum TpmSe(TpmUint8) {
420 (Hmac, 0x00, "TPM_SE_HMAC"),
421 (Policy, 0x01, "TPM_SE_POLICY"),
422 (Trial, 0x03, "TPM_SE_TRIAL"),
423 }
424}
425
426tpm_enum! {
427 #[derive(Debug, PartialEq, Eq, Copy, Clone, Default, Hash)]
428 pub enum TpmSt(TpmUint16) {
429 (RspCommand, 0x00C4, "TPM_ST_RSP_COMMAND"),
430 #[default]
431 (Null, 0x8000, "TPM_ST_NULL"),
432 (NoSessions, 0x8001, "TPM_ST_NO_SESSIONS"),
433 (Sessions, 0x8002, "TPM_ST_SESSIONS"),
434 (AttestNv, 0x8014, "TPM_ST_ATTEST_NV"),
435 (AttestCommandAudit, 0x8015, "TPM_ST_ATTEST_COMMAND_AUDIT"),
436 (AttestSessionAudit, 0x8016, "TPM_ST_ATTEST_SESSION_AUDIT"),
437 (AttestCertify, 0x8017, "TPM_ST_ATTEST_CERTIFY"),
438 (AttestQuote, 0x8018, "TPM_ST_ATTEST_QUOTE"),
439 (AttestTime, 0x8019, "TPM_ST_ATTEST_TIME"),
440 (AttestCreation, 0x801A, "TPM_ST_ATTEST_CREATION"),
441 (AttestNvDigest, 0x801C, "TPM_ST_ATTEST_NV_DIGEST"),
442 (Creation, 0x8021, "TPM_ST_CREATION"),
443 (Verified, 0x8022, "TPM_ST_VERIFIED"),
444 (AuthSecret, 0x8023, "TPM_ST_AUTH_SECRET"),
445 (HashCheck, 0x8024, "TPM_ST_HASHCHECK"),
446 (AuthSigned, 0x8025, "TPM_ST_AUTH_SIGNED"),
447 }
448}
449
450tpm_enum! {
451 #[derive(Debug, PartialEq, Eq, Copy, Clone, Hash)]
452 pub enum TpmSu(TpmUint16) {
453 (Clear, 0x0000, "TPM_SU_CLEAR"),
454 (State, 0x0001, "TPM_SU_STATE"),
455 }
456}