Source code for tpm2_pytss.constants

# SPDX-License-Identifier: BSD-2
""" This module contains all the constant values from the following TCG specifications:

- https://trustedcomputinggroup.org/resource/tpm-library-specification/. See Part 2 "Structures".
- https://trustedcomputinggroup.org/resource/tss-overview-common-structures-specification

Along with helpers to go from string values to constants and constant values to string values.
"""
from ._libtpm2_pytss import lib, ffi
from tpm2_pytss.internal.utils import _CLASS_INT_ATTRS_from_string, _lib_version_atleast


[docs]class TPM_FRIENDLY_INT(int): _FIXUP_MAP = {}
[docs] @classmethod def parse(cls, value: str) -> int: # If it's a string initializer value, see if it matches anything in the list if isinstance(value, str): try: x = _CLASS_INT_ATTRS_from_string(cls, value, cls._FIXUP_MAP) if not isinstance(x, int): raise KeyError(f'Expected int got: "{type(x)}"') return x except KeyError: raise ValueError( f'Could not convert friendly name to value, got: "{value}"' ) else: raise TypeError(f'Expected value to be a str object, got: "{type(value)}"')
[docs] @classmethod def iterator(cls) -> filter: """ Returns the constants in the class. Returns: (int): The int values of the constants in the class. Example: list(ESYS_TR.iterator()) -> [4095, 255, 0, 1, 2, 3, ... ] """ return filter(lambda x: isinstance(x, int), vars(cls).values())
[docs] @classmethod def contains(cls, value: int) -> bool: """ Indicates if a class contains a numeric constant. Args: value (int): The raw numerical number to test for. Returns: (bool): True if the class contains the constant, False otherwise. Example: ESYS_TR.contains(7) -> True """ return value in cls.iterator()
[docs] @classmethod def to_string(cls, value: int) -> str: """ Converts an integer value into it's friendly string name for that class. Args: value (int): The raw numerical number to try and convert to a name. Returns: (str): The string of the constant defining the raw numeric. Raises: ValueError: If the numeric does not match a constant. Example: ESYS_TR.to_string(5) -> 'ESYS_TR.PCR5' """ # Take the shortest match, ie OWNER over RH_OWNER. m = None items = vars(cls).items() for k, v in items: if v == value and (m is None or len(k) < len(m)): m = k if m is None: raise ValueError(f"Could not match {value} to class {cls.__name__}") return f"{cls.__name__}.{m}"
[docs] def __str__(self) -> str: """Returns a string value of the constant normalized to lowercase. Returns: (str): a string value of the constant normalized to lowercase. Example: str(ESYS_TR.PCR2) -> 'pcr2' """ for k, v in vars(self.__class__).items(): if int(self) == v: return k.lower() return str(int(self))
def __abs__(self): return self.__class__(int(self).__abs__()) def __add__(self, value): return self.__class__(int(self).__add__(value)) def __and__(self, value): return self.__class__(int(self).__and__(value)) def __ceil__(self): return self.__class__(int(self).__ceil__()) def __divmod__(self, value): a, b = int(self).__divmod__(value) return self.__class__(a), self.__class__(b) def __floor__(self): return self.__class__(int(self).__floor__()) def __floordiv__(self, value): return self.__class__(int(self).__floordiv__(value)) def __invert__(self): return self.__class__(int(self).__invert__()) def __lshift__(self, value): return self.__class__(int(self).__lshift__(value)) def __mod__(self, value): return self.__class__(int(self).__mod__(value)) def __mul__(self, value): return self.__class__(int(self).__mul__(value)) def __neg__(self): return self.__class__(int(self).__neg__()) def __or__(self, value): return self.__class__(int(self).__or__(value)) def __pos__(self): return self.__class__(int(self).__pos__()) def __pow__(self, value, mod=None): return self.__class__(int(self).__pow__(value, mod)) def __radd__(self, value): return self.__class__(int(self).__radd__(value)) def __rand__(self, value): return self.__class__(int(self).__rand__(value)) def __rdivmod__(self, value): a, b = int(self).__rdivmod__(value) return self.__class__(a), self.__class__(b) def __rfloordiv__(self, value): return self.__class__(int(self).__rfloordiv__(value)) def __rlshift__(self, value): return self.__class__(int(self).__rlshift__(value)) def __rmod__(self, value): return self.__class__(int(self).__rmod__(value)) def __rmul__(self, value): return self.__class__(int(self).__rmul__(value)) def __ror__(self, value): return self.__class__(int(self).__ror__(value)) def __round__(self): return self.__class__(int(self).__round__()) def __rpow__(self, value, mod=None): return self.__class__(int(self).__rpow__(value, mod)) def __rrshift__(self, value): return self.__class__(int(self).__rrshift__(value)) def __rshift__(self, value): return self.__class__(int(self).__rshift__(value)) def __rsub__(self, value): return self.__class__(int(self).__rsub__(value)) def __rtruediv__(self, value): return self.__class__(int(self).__rtruediv__(value)) def __rxor__(self, value): return self.__class__(int(self).__rxor__(value)) def __sub__(self, value): return self.__class__(int(self).__sub__(value)) def __truediv__(self, value): return self.__class__(int(self).__truediv__(value)) def __xor__(self, value): return self.__class__(int(self).__xor__(value)) @staticmethod def _fix_const_type(cls): for k, v in vars(cls).items(): if not isinstance(v, int) or k.startswith("_"): continue fv = cls(v) setattr(cls, k, fv) return cls
[docs]class TPMA_FRIENDLY_INTLIST(TPM_FRIENDLY_INT): _MASKS = tuple()
[docs] @classmethod def parse(cls, value: str) -> int: """ Converts a string of | separated constant values into it's integer value. Given a pipe "|" separated list of string constant values that represent the bitwise values returns the value itself. The value "" (empty string) returns a 0. Args: value (str): The string "bitwise" expression of the object or the empty string. Returns: The integer result. Raises: TypeError: If the value is not a str. ValueError: If a field portion of the str does not match a constant. Examples: TPMA_NV.parse("ppwrite|orderly|NO_DA") -> 0x6000001 TPMA_NV.parse("NO_DA") -> 0x2000000 """ intvalue = 0 if not isinstance(value, str): raise TypeError(f'Expected value to be a str, got: "{type(value)}"') hunks = value.split("|") if "|" in value else [value] for k in list(hunks): if "=" not in k: continue hname, hval = k.split("=", 1) v = int(hval, base=0) hunks.remove(k) found = False for mask, shift, name in cls._MASKS: if hname != name: continue mv = mask >> shift if v > mv: raise ValueError( f"value for {name} is to large, got 0x{v:x}, max is 0x{mv:x}" ) intvalue = intvalue | (v << shift) found = True break if not found: raise ValueError(f"unknown mask type {hname}") for k in hunks: try: intvalue |= _CLASS_INT_ATTRS_from_string(cls, k, cls._FIXUP_MAP) except KeyError: raise ValueError( f'Could not convert friendly name to value, got: "{k}"' ) return intvalue
[docs] def __str__(self): """Given a constant, return the string bitwise representation. Each constant is seperated by the "|" (pipe) character. Returns: (str): a bitwise string value of the fields for the constant normalized to lowercase. Raises: ValueError: If their are unmatched bits in the constant value. Example: str(TPMA_NV(TPMA_NV.PPWRITE|TPMA_NV.ORDERLY|TPMA_NV.NO_DA)) -> 'ppwrite|noda|orderly' """ cv = int(self) ints = list() for k, v in vars(self.__class__).items(): if cv == 0: break if ( not isinstance(v, int) or k.startswith(("_", "_DEFAULT")) or k.endswith(("_MASK", "_SHIFT")) ): continue for fk, fv in self._FIXUP_MAP.items(): if k == fv: k = fk break if v == 0 or v & cv != v: continue ints.append(k.lower()) cv = cv ^ v for mask, shift, name in self._MASKS: if not cv & mask: continue v = (cv & mask) >> shift s = f"{name}=0x{v:x}" cv = cv ^ (cv & mask) ints.append(s) if cv: raise ValueError(f"unnmatched values left: 0x{cv:x}") return "|".join(ints)
[docs]@TPM_FRIENDLY_INT._fix_const_type class ESYS_TR(TPM_FRIENDLY_INT): """ESYS_TR is an ESAPI identifier representing a TPM resource To get the ESYS_TR identifier for a persistent handle, such as a NV area or a persistent key use :func:`tpm2_pytss.ESAPI.tr_from_tpmpublic` """ NONE = lib.ESYS_TR_NONE PASSWORD = lib.ESYS_TR_PASSWORD PCR0 = lib.ESYS_TR_PCR0 PCR1 = lib.ESYS_TR_PCR1 PCR2 = lib.ESYS_TR_PCR2 PCR3 = lib.ESYS_TR_PCR3 PCR4 = lib.ESYS_TR_PCR4 PCR5 = lib.ESYS_TR_PCR5 PCR6 = lib.ESYS_TR_PCR6 PCR7 = lib.ESYS_TR_PCR7 PCR8 = lib.ESYS_TR_PCR8 PCR9 = lib.ESYS_TR_PCR9 PCR10 = lib.ESYS_TR_PCR10 PCR11 = lib.ESYS_TR_PCR11 PCR12 = lib.ESYS_TR_PCR12 PCR13 = lib.ESYS_TR_PCR13 PCR14 = lib.ESYS_TR_PCR14 PCR15 = lib.ESYS_TR_PCR15 PCR16 = lib.ESYS_TR_PCR16 PCR17 = lib.ESYS_TR_PCR17 PCR18 = lib.ESYS_TR_PCR18 PCR19 = lib.ESYS_TR_PCR19 PCR20 = lib.ESYS_TR_PCR20 PCR21 = lib.ESYS_TR_PCR21 PCR22 = lib.ESYS_TR_PCR22 PCR23 = lib.ESYS_TR_PCR23 PCR24 = lib.ESYS_TR_PCR24 PCR25 = lib.ESYS_TR_PCR25 PCR26 = lib.ESYS_TR_PCR26 PCR27 = lib.ESYS_TR_PCR27 PCR28 = lib.ESYS_TR_PCR28 PCR29 = lib.ESYS_TR_PCR29 PCR30 = lib.ESYS_TR_PCR30 PCR31 = lib.ESYS_TR_PCR31 OWNER = lib.ESYS_TR_RH_OWNER NULL = lib.ESYS_TR_RH_NULL LOCKOUT = lib.ESYS_TR_RH_LOCKOUT ENDORSEMENT = lib.ESYS_TR_RH_ENDORSEMENT PLATFORM = lib.ESYS_TR_RH_PLATFORM PLATFORM_NV = lib.ESYS_TR_RH_PLATFORM_NV RH_OWNER = lib.ESYS_TR_RH_OWNER RH_NULL = lib.ESYS_TR_RH_NULL RH_LOCKOUT = lib.ESYS_TR_RH_LOCKOUT RH_ENDORSEMENT = lib.ESYS_TR_RH_ENDORSEMENT RH_PLATFORM = lib.ESYS_TR_RH_PLATFORM RH_PLATFORM_NV = lib.ESYS_TR_RH_PLATFORM_NV
[docs] def serialize(self, ectx: "ESAPI") -> bytes: """Same as see tpm2_pytss.ESAPI.tr_serialize Args: ectx(ESAPI): The esapi context the ESYS_TR was created from. Returns: A byte array of the serialized ESYS_TR. """ return ectx.tr_serialize(self)
[docs] @staticmethod def deserialize(ectx: "ESAPI", buffer: bytes) -> "ESYS_TR": """Same as see tpm2_pytss.ESAPI.tr_derialize Args: ectx(ESAPI): The esapi context to load the ESYS_TR on. Returns: An ESYS_TR representing the TPM object. """ return ectx.tr_deserialize(buffer)
[docs] def get_name(self, ectx: "ESAPI") -> "TPM2B_NAME": """Same as see tpm2_pytss.ESAPI.tr_get_name Args: ectx(ESAPI): The esapi context to retrieve the object name from. Returns: A TPM2B_NAME object. """ return ectx.tr_get_name(self)
[docs] def close(self, ectx: "ESAPI"): """Same as see tpm2_pytss.ESAPI.tr_close Args: ectx(ESAPI): The esapi context to close the ESYS_TR on. """ return ectx.tr_close(self)
[docs]@TPM_FRIENDLY_INT._fix_const_type class TPM2_RH(TPM_FRIENDLY_INT): SRK = lib.TPM2_RH_SRK OWNER = lib.TPM2_RH_OWNER REVOKE = lib.TPM2_RH_REVOKE TRANSPORT = lib.TPM2_RH_TRANSPORT OPERATOR = lib.TPM2_RH_OPERATOR ADMIN = lib.TPM2_RH_ADMIN EK = lib.TPM2_RH_EK NULL = lib.TPM2_RH_NULL UNASSIGNED = lib.TPM2_RH_UNASSIGNED try: PW = lib.TPM2_RS_PW except AttributeError: PW = lib.TPM2_RH_PW LOCKOUT = lib.TPM2_RH_LOCKOUT ENDORSEMENT = lib.TPM2_RH_ENDORSEMENT PLATFORM = lib.TPM2_RH_PLATFORM PLATFORM_NV = lib.TPM2_RH_PLATFORM_NV
[docs]@TPM_FRIENDLY_INT._fix_const_type class TPM2_ALG(TPM_FRIENDLY_INT): ERROR = lib.TPM2_ALG_ERROR RSA = lib.TPM2_ALG_RSA TDES = lib.TPM2_ALG_TDES SHA = lib.TPM2_ALG_SHA SHA1 = lib.TPM2_ALG_SHA1 HMAC = lib.TPM2_ALG_HMAC AES = lib.TPM2_ALG_AES MGF1 = lib.TPM2_ALG_MGF1 KEYEDHASH = lib.TPM2_ALG_KEYEDHASH XOR = lib.TPM2_ALG_XOR SHA256 = lib.TPM2_ALG_SHA256 SHA384 = lib.TPM2_ALG_SHA384 SHA512 = lib.TPM2_ALG_SHA512 NULL = lib.TPM2_ALG_NULL SM3_256 = lib.TPM2_ALG_SM3_256 SM4 = lib.TPM2_ALG_SM4 RSASSA = lib.TPM2_ALG_RSASSA RSAES = lib.TPM2_ALG_RSAES RSAPSS = lib.TPM2_ALG_RSAPSS OAEP = lib.TPM2_ALG_OAEP ECDSA = lib.TPM2_ALG_ECDSA ECDH = lib.TPM2_ALG_ECDH ECDAA = lib.TPM2_ALG_ECDAA SM2 = lib.TPM2_ALG_SM2 ECSCHNORR = lib.TPM2_ALG_ECSCHNORR ECMQV = lib.TPM2_ALG_ECMQV KDF1_SP800_56A = lib.TPM2_ALG_KDF1_SP800_56A KDF2 = lib.TPM2_ALG_KDF2 KDF1_SP800_108 = lib.TPM2_ALG_KDF1_SP800_108 ECC = lib.TPM2_ALG_ECC SYMCIPHER = lib.TPM2_ALG_SYMCIPHER CAMELLIA = lib.TPM2_ALG_CAMELLIA CTR = lib.TPM2_ALG_CTR SHA3_256 = lib.TPM2_ALG_SHA3_256 SHA3_384 = lib.TPM2_ALG_SHA3_384 SHA3_512 = lib.TPM2_ALG_SHA3_512 OFB = lib.TPM2_ALG_OFB CBC = lib.TPM2_ALG_CBC CFB = lib.TPM2_ALG_CFB ECB = lib.TPM2_ALG_ECB FIRST = lib.TPM2_ALG_FIRST LAST = lib.TPM2_ALG_LAST
TPM2_ALG_ID = TPM2_ALG
[docs]@TPM_FRIENDLY_INT._fix_const_type class TPM2_ECC(TPM_FRIENDLY_INT): NONE = lib.TPM2_ECC_NONE NIST_P192 = lib.TPM2_ECC_NIST_P192 NIST_P224 = lib.TPM2_ECC_NIST_P224 NIST_P256 = lib.TPM2_ECC_NIST_P256 NIST_P384 = lib.TPM2_ECC_NIST_P384 NIST_P521 = lib.TPM2_ECC_NIST_P521 BN_P256 = lib.TPM2_ECC_BN_P256 BN_P638 = lib.TPM2_ECC_BN_P638 SM2_P256 = lib.TPM2_ECC_SM2_P256 _FIXUP_MAP = { "192": "NIST_P192", "224": "NIST_P224", "256": "NIST_P256", "384": "NIST_P384", "521": "NIST_P521", "SM2": "SM2_P256", }
TPM2_ECC_CURVE = TPM2_ECC
[docs]@TPM_FRIENDLY_INT._fix_const_type class TPM2_CC(TPM_FRIENDLY_INT): NV_UndefineSpaceSpecial = lib.TPM2_CC_NV_UndefineSpaceSpecial FIRST = lib.TPM2_CC_FIRST EvictControl = lib.TPM2_CC_EvictControl HierarchyControl = lib.TPM2_CC_HierarchyControl NV_UndefineSpace = lib.TPM2_CC_NV_UndefineSpace ChangeEPS = lib.TPM2_CC_ChangeEPS ChangePPS = lib.TPM2_CC_ChangePPS Clear = lib.TPM2_CC_Clear ClearControl = lib.TPM2_CC_ClearControl ClockSet = lib.TPM2_CC_ClockSet HierarchyChangeAuth = lib.TPM2_CC_HierarchyChangeAuth NV_DefineSpace = lib.TPM2_CC_NV_DefineSpace PCR_Allocate = lib.TPM2_CC_PCR_Allocate PCR_SetAuthPolicy = lib.TPM2_CC_PCR_SetAuthPolicy PP_Commands = lib.TPM2_CC_PP_Commands SetPrimaryPolicy = lib.TPM2_CC_SetPrimaryPolicy FieldUpgradeStart = lib.TPM2_CC_FieldUpgradeStart ClockRateAdjust = lib.TPM2_CC_ClockRateAdjust CreatePrimary = lib.TPM2_CC_CreatePrimary NV_GlobalWriteLock = lib.TPM2_CC_NV_GlobalWriteLock GetCommandAuditDigest = lib.TPM2_CC_GetCommandAuditDigest NV_Increment = lib.TPM2_CC_NV_Increment NV_SetBits = lib.TPM2_CC_NV_SetBits NV_Extend = lib.TPM2_CC_NV_Extend NV_Write = lib.TPM2_CC_NV_Write NV_WriteLock = lib.TPM2_CC_NV_WriteLock DictionaryAttackLockReset = lib.TPM2_CC_DictionaryAttackLockReset DictionaryAttackParameters = lib.TPM2_CC_DictionaryAttackParameters NV_ChangeAuth = lib.TPM2_CC_NV_ChangeAuth PCR_Event = lib.TPM2_CC_PCR_Event PCR_Reset = lib.TPM2_CC_PCR_Reset SequenceComplete = lib.TPM2_CC_SequenceComplete SetAlgorithmSet = lib.TPM2_CC_SetAlgorithmSet SetCommandCodeAuditStatus = lib.TPM2_CC_SetCommandCodeAuditStatus FieldUpgradeData = lib.TPM2_CC_FieldUpgradeData IncrementalSelfTest = lib.TPM2_CC_IncrementalSelfTest SelfTest = lib.TPM2_CC_SelfTest Startup = lib.TPM2_CC_Startup Shutdown = lib.TPM2_CC_Shutdown StirRandom = lib.TPM2_CC_StirRandom ActivateCredential = lib.TPM2_CC_ActivateCredential Certify = lib.TPM2_CC_Certify PolicyNV = lib.TPM2_CC_PolicyNV CertifyCreation = lib.TPM2_CC_CertifyCreation Duplicate = lib.TPM2_CC_Duplicate GetTime = lib.TPM2_CC_GetTime GetSessionAuditDigest = lib.TPM2_CC_GetSessionAuditDigest NV_Read = lib.TPM2_CC_NV_Read NV_ReadLock = lib.TPM2_CC_NV_ReadLock ObjectChangeAuth = lib.TPM2_CC_ObjectChangeAuth PolicySecret = lib.TPM2_CC_PolicySecret Rewrap = lib.TPM2_CC_Rewrap Create = lib.TPM2_CC_Create ECDH_ZGen = lib.TPM2_CC_ECDH_ZGen HMAC = lib.TPM2_CC_HMAC Import = lib.TPM2_CC_Import Load = lib.TPM2_CC_Load Quote = lib.TPM2_CC_Quote RSA_Decrypt = lib.TPM2_CC_RSA_Decrypt HMAC_Start = lib.TPM2_CC_HMAC_Start SequenceUpdate = lib.TPM2_CC_SequenceUpdate Sign = lib.TPM2_CC_Sign Unseal = lib.TPM2_CC_Unseal PolicySigned = lib.TPM2_CC_PolicySigned ContextLoad = lib.TPM2_CC_ContextLoad ContextSave = lib.TPM2_CC_ContextSave ECDH_KeyGen = lib.TPM2_CC_ECDH_KeyGen EncryptDecrypt = lib.TPM2_CC_EncryptDecrypt FlushContext = lib.TPM2_CC_FlushContext LoadExternal = lib.TPM2_CC_LoadExternal MakeCredential = lib.TPM2_CC_MakeCredential NV_ReadPublic = lib.TPM2_CC_NV_ReadPublic PolicyAuthorize = lib.TPM2_CC_PolicyAuthorize PolicyAuthValue = lib.TPM2_CC_PolicyAuthValue PolicyCommandCode = lib.TPM2_CC_PolicyCommandCode PolicyCounterTimer = lib.TPM2_CC_PolicyCounterTimer PolicyCpHash = lib.TPM2_CC_PolicyCpHash PolicyLocality = lib.TPM2_CC_PolicyLocality PolicyNameHash = lib.TPM2_CC_PolicyNameHash PolicyOR = lib.TPM2_CC_PolicyOR PolicyTicket = lib.TPM2_CC_PolicyTicket ReadPublic = lib.TPM2_CC_ReadPublic RSA_Encrypt = lib.TPM2_CC_RSA_Encrypt StartAuthSession = lib.TPM2_CC_StartAuthSession VerifySignature = lib.TPM2_CC_VerifySignature ECC_Parameters = lib.TPM2_CC_ECC_Parameters FirmwareRead = lib.TPM2_CC_FirmwareRead GetCapability = lib.TPM2_CC_GetCapability GetRandom = lib.TPM2_CC_GetRandom GetTestResult = lib.TPM2_CC_GetTestResult Hash = lib.TPM2_CC_Hash PCR_Read = lib.TPM2_CC_PCR_Read PolicyPCR = lib.TPM2_CC_PolicyPCR PolicyRestart = lib.TPM2_CC_PolicyRestart ReadClock = lib.TPM2_CC_ReadClock PCR_Extend = lib.TPM2_CC_PCR_Extend PCR_SetAuthValue = lib.TPM2_CC_PCR_SetAuthValue NV_Certify = lib.TPM2_CC_NV_Certify EventSequenceComplete = lib.TPM2_CC_EventSequenceComplete HashSequenceStart = lib.TPM2_CC_HashSequenceStart PolicyPhysicalPresence = lib.TPM2_CC_PolicyPhysicalPresence PolicyDuplicationSelect = lib.TPM2_CC_PolicyDuplicationSelect PolicyGetDigest = lib.TPM2_CC_PolicyGetDigest TestParms = lib.TPM2_CC_TestParms Commit = lib.TPM2_CC_Commit PolicyPassword = lib.TPM2_CC_PolicyPassword ZGen_2Phase = lib.TPM2_CC_ZGen_2Phase EC_Ephemeral = lib.TPM2_CC_EC_Ephemeral PolicyNvWritten = lib.TPM2_CC_PolicyNvWritten PolicyTemplate = lib.TPM2_CC_PolicyTemplate CreateLoaded = lib.TPM2_CC_CreateLoaded PolicyAuthorizeNV = lib.TPM2_CC_PolicyAuthorizeNV EncryptDecrypt2 = lib.TPM2_CC_EncryptDecrypt2 AC_GetCapability = lib.TPM2_CC_AC_GetCapability AC_Send = lib.TPM2_CC_AC_Send Policy_AC_SendSelect = lib.TPM2_CC_Policy_AC_SendSelect LAST = lib.TPM2_CC_LAST Vendor_TCG_Test = lib.TPM2_CC_Vendor_TCG_Test
[docs]@TPM_FRIENDLY_INT._fix_const_type class TPM2_SPEC(TPM_FRIENDLY_INT): FAMILY = lib.TPM2_SPEC_FAMILY LEVEL = lib.TPM2_SPEC_LEVEL VERSION = lib.TPM2_SPEC_VERSION YEAR = lib.TPM2_SPEC_YEAR DAY_OF_YEAR = lib.TPM2_SPEC_DAY_OF_YEAR
[docs]@TPM_FRIENDLY_INT._fix_const_type class TPM2_GENERATED(TPM_FRIENDLY_INT): VALUE = lib.TPM2_GENERATED_VALUE
[docs]class TPM_BASE_RC(TPM_FRIENDLY_INT):
[docs] def decode(self): return ffi.string(lib.Tss2_RC_Decode(self)).decode()
[docs]@TPM_FRIENDLY_INT._fix_const_type class TPM2_RC(TPM_BASE_RC): SUCCESS = lib.TPM2_RC_SUCCESS BAD_TAG = lib.TPM2_RC_BAD_TAG VER1 = lib.TPM2_RC_VER1 INITIALIZE = lib.TPM2_RC_INITIALIZE FAILURE = lib.TPM2_RC_FAILURE SEQUENCE = lib.TPM2_RC_SEQUENCE PRIVATE = lib.TPM2_RC_PRIVATE HMAC = lib.TPM2_RC_HMAC DISABLED = lib.TPM2_RC_DISABLED EXCLUSIVE = lib.TPM2_RC_EXCLUSIVE AUTH_TYPE = lib.TPM2_RC_AUTH_TYPE AUTH_MISSING = lib.TPM2_RC_AUTH_MISSING POLICY = lib.TPM2_RC_POLICY PCR = lib.TPM2_RC_PCR PCR_CHANGED = lib.TPM2_RC_PCR_CHANGED UPGRADE = lib.TPM2_RC_UPGRADE TOO_MANY_CONTEXTS = lib.TPM2_RC_TOO_MANY_CONTEXTS AUTH_UNAVAILABLE = lib.TPM2_RC_AUTH_UNAVAILABLE REBOOT = lib.TPM2_RC_REBOOT UNBALANCED = lib.TPM2_RC_UNBALANCED COMMAND_SIZE = lib.TPM2_RC_COMMAND_SIZE COMMAND_CODE = lib.TPM2_RC_COMMAND_CODE AUTHSIZE = lib.TPM2_RC_AUTHSIZE AUTH_CONTEXT = lib.TPM2_RC_AUTH_CONTEXT NV_RANGE = lib.TPM2_RC_NV_RANGE NV_SIZE = lib.TPM2_RC_NV_SIZE NV_LOCKED = lib.TPM2_RC_NV_LOCKED NV_AUTHORIZATION = lib.TPM2_RC_NV_AUTHORIZATION NV_UNINITIALIZED = lib.TPM2_RC_NV_UNINITIALIZED NV_SPACE = lib.TPM2_RC_NV_SPACE NV_DEFINED = lib.TPM2_RC_NV_DEFINED BAD_CONTEXT = lib.TPM2_RC_BAD_CONTEXT CPHASH = lib.TPM2_RC_CPHASH PARENT = lib.TPM2_RC_PARENT NEEDS_TEST = lib.TPM2_RC_NEEDS_TEST NO_RESULT = lib.TPM2_RC_NO_RESULT SENSITIVE = lib.TPM2_RC_SENSITIVE MAX_FM0 = lib.TPM2_RC_MAX_FM0 FMT1 = lib.TPM2_RC_FMT1 ASYMMETRIC = lib.TPM2_RC_ASYMMETRIC ATTRIBUTES = lib.TPM2_RC_ATTRIBUTES HASH = lib.TPM2_RC_HASH VALUE = lib.TPM2_RC_VALUE HIERARCHY = lib.TPM2_RC_HIERARCHY KEY_SIZE = lib.TPM2_RC_KEY_SIZE MGF = lib.TPM2_RC_MGF MODE = lib.TPM2_RC_MODE TYPE = lib.TPM2_RC_TYPE HANDLE = lib.TPM2_RC_HANDLE KDF = lib.TPM2_RC_KDF RANGE = lib.TPM2_RC_RANGE AUTH_FAIL = lib.TPM2_RC_AUTH_FAIL NONCE = lib.TPM2_RC_NONCE PP = lib.TPM2_RC_PP SCHEME = lib.TPM2_RC_SCHEME SIZE = lib.TPM2_RC_SIZE SYMMETRIC = lib.TPM2_RC_SYMMETRIC TAG = lib.TPM2_RC_TAG SELECTOR = lib.TPM2_RC_SELECTOR INSUFFICIENT = lib.TPM2_RC_INSUFFICIENT SIGNATURE = lib.TPM2_RC_SIGNATURE KEY = lib.TPM2_RC_KEY POLICY_FAIL = lib.TPM2_RC_POLICY_FAIL INTEGRITY = lib.TPM2_RC_INTEGRITY TICKET = lib.TPM2_RC_TICKET BAD_AUTH = lib.TPM2_RC_BAD_AUTH EXPIRED = lib.TPM2_RC_EXPIRED POLICY_CC = lib.TPM2_RC_POLICY_CC BINDING = lib.TPM2_RC_BINDING CURVE = lib.TPM2_RC_CURVE ECC_POINT = lib.TPM2_RC_ECC_POINT WARN = lib.TPM2_RC_WARN CONTEXT_GAP = lib.TPM2_RC_CONTEXT_GAP OBJECT_MEMORY = lib.TPM2_RC_OBJECT_MEMORY SESSION_MEMORY = lib.TPM2_RC_SESSION_MEMORY MEMORY = lib.TPM2_RC_MEMORY SESSION_HANDLES = lib.TPM2_RC_SESSION_HANDLES OBJECT_HANDLES = lib.TPM2_RC_OBJECT_HANDLES LOCALITY = lib.TPM2_RC_LOCALITY YIELDED = lib.TPM2_RC_YIELDED CANCELED = lib.TPM2_RC_CANCELED TESTING = lib.TPM2_RC_TESTING REFERENCE_H0 = lib.TPM2_RC_REFERENCE_H0 REFERENCE_H1 = lib.TPM2_RC_REFERENCE_H1 REFERENCE_H2 = lib.TPM2_RC_REFERENCE_H2 REFERENCE_H3 = lib.TPM2_RC_REFERENCE_H3 REFERENCE_H4 = lib.TPM2_RC_REFERENCE_H4 REFERENCE_H5 = lib.TPM2_RC_REFERENCE_H5 REFERENCE_H6 = lib.TPM2_RC_REFERENCE_H6 REFERENCE_S0 = lib.TPM2_RC_REFERENCE_S0 REFERENCE_S1 = lib.TPM2_RC_REFERENCE_S1 REFERENCE_S2 = lib.TPM2_RC_REFERENCE_S2 REFERENCE_S3 = lib.TPM2_RC_REFERENCE_S3 REFERENCE_S4 = lib.TPM2_RC_REFERENCE_S4 REFERENCE_S5 = lib.TPM2_RC_REFERENCE_S5 REFERENCE_S6 = lib.TPM2_RC_REFERENCE_S6 NV_RATE = lib.TPM2_RC_NV_RATE LOCKOUT = lib.TPM2_RC_LOCKOUT RETRY = lib.TPM2_RC_RETRY NV_UNAVAILABLE = lib.TPM2_RC_NV_UNAVAILABLE NOT_USED = lib.TPM2_RC_NOT_USED H = lib.TPM2_RC_H P = lib.TPM2_RC_P S = lib.TPM2_RC_S RC1 = lib.TPM2_RC_1 RC2 = lib.TPM2_RC_2 RC3 = lib.TPM2_RC_3 RC4 = lib.TPM2_RC_4 RC5 = lib.TPM2_RC_5 RC6 = lib.TPM2_RC_6 RC7 = lib.TPM2_RC_7 RC8 = lib.TPM2_RC_8 RC9 = lib.TPM2_RC_9 A = lib.TPM2_RC_A B = lib.TPM2_RC_B C = lib.TPM2_RC_C D = lib.TPM2_RC_D E = lib.TPM2_RC_E F = lib.TPM2_RC_F N_MASK = lib.TPM2_RC_N_MASK
[docs]@TPM_FRIENDLY_INT._fix_const_type class TSS2_RC(TPM_BASE_RC): RC_LAYER_SHIFT = lib.TSS2_RC_LAYER_SHIFT RC_LAYER_MASK = lib.TSS2_RC_LAYER_MASK TPM_RC_LAYER = lib.TSS2_TPM_RC_LAYER FEATURE_RC_LAYER = lib.TSS2_FEATURE_RC_LAYER ESAPI_RC_LAYER = lib.TSS2_ESAPI_RC_LAYER SYS_RC_LAYER = lib.TSS2_SYS_RC_LAYER MU_RC_LAYER = lib.TSS2_MU_RC_LAYER TCTI_RC_LAYER = lib.TSS2_TCTI_RC_LAYER RESMGR_RC_LAYER = lib.TSS2_RESMGR_RC_LAYER RESMGR_TPM_RC_LAYER = lib.TSS2_RESMGR_TPM_RC_LAYER BASE_RC_GENERAL_FAILURE = lib.TSS2_BASE_RC_GENERAL_FAILURE BASE_RC_NOT_IMPLEMENTED = lib.TSS2_BASE_RC_NOT_IMPLEMENTED BASE_RC_BAD_CONTEXT = lib.TSS2_BASE_RC_BAD_CONTEXT BASE_RC_ABI_MISMATCH = lib.TSS2_BASE_RC_ABI_MISMATCH BASE_RC_BAD_REFERENCE = lib.TSS2_BASE_RC_BAD_REFERENCE BASE_RC_INSUFFICIENT_BUFFER = lib.TSS2_BASE_RC_INSUFFICIENT_BUFFER BASE_RC_BAD_SEQUENCE = lib.TSS2_BASE_RC_BAD_SEQUENCE BASE_RC_NO_CONNECTION = lib.TSS2_BASE_RC_NO_CONNECTION BASE_RC_TRY_AGAIN = lib.TSS2_BASE_RC_TRY_AGAIN BASE_RC_IO_ERROR = lib.TSS2_BASE_RC_IO_ERROR BASE_RC_BAD_VALUE = lib.TSS2_BASE_RC_BAD_VALUE BASE_RC_NOT_PERMITTED = lib.TSS2_BASE_RC_NOT_PERMITTED BASE_RC_INVALID_SESSIONS = lib.TSS2_BASE_RC_INVALID_SESSIONS BASE_RC_NO_DECRYPT_PARAM = lib.TSS2_BASE_RC_NO_DECRYPT_PARAM BASE_RC_NO_ENCRYPT_PARAM = lib.TSS2_BASE_RC_NO_ENCRYPT_PARAM BASE_RC_BAD_SIZE = lib.TSS2_BASE_RC_BAD_SIZE BASE_RC_MALFORMED_RESPONSE = lib.TSS2_BASE_RC_MALFORMED_RESPONSE BASE_RC_INSUFFICIENT_CONTEXT = lib.TSS2_BASE_RC_INSUFFICIENT_CONTEXT BASE_RC_INSUFFICIENT_RESPONSE = lib.TSS2_BASE_RC_INSUFFICIENT_RESPONSE BASE_RC_INCOMPATIBLE_TCTI = lib.TSS2_BASE_RC_INCOMPATIBLE_TCTI BASE_RC_NOT_SUPPORTED = lib.TSS2_BASE_RC_NOT_SUPPORTED BASE_RC_BAD_TCTI_STRUCTURE = lib.TSS2_BASE_RC_BAD_TCTI_STRUCTURE BASE_RC_MEMORY = lib.TSS2_BASE_RC_MEMORY BASE_RC_BAD_TR = lib.TSS2_BASE_RC_BAD_TR BASE_RC_MULTIPLE_DECRYPT_SESSIONS = lib.TSS2_BASE_RC_MULTIPLE_DECRYPT_SESSIONS BASE_RC_MULTIPLE_ENCRYPT_SESSIONS = lib.TSS2_BASE_RC_MULTIPLE_ENCRYPT_SESSIONS BASE_RC_RSP_AUTH_FAILED = lib.TSS2_BASE_RC_RSP_AUTH_FAILED BASE_RC_NO_CONFIG = lib.TSS2_BASE_RC_NO_CONFIG BASE_RC_BAD_PATH = lib.TSS2_BASE_RC_BAD_PATH BASE_RC_NOT_DELETABLE = lib.TSS2_BASE_RC_NOT_DELETABLE BASE_RC_PATH_ALREADY_EXISTS = lib.TSS2_BASE_RC_PATH_ALREADY_EXISTS BASE_RC_KEY_NOT_FOUND = lib.TSS2_BASE_RC_KEY_NOT_FOUND BASE_RC_SIGNATURE_VERIFICATION_FAILED = ( lib.TSS2_BASE_RC_SIGNATURE_VERIFICATION_FAILED ) BASE_RC_HASH_MISMATCH = lib.TSS2_BASE_RC_HASH_MISMATCH BASE_RC_KEY_NOT_DUPLICABLE = lib.TSS2_BASE_RC_KEY_NOT_DUPLICABLE BASE_RC_PATH_NOT_FOUND = lib.TSS2_BASE_RC_PATH_NOT_FOUND BASE_RC_NO_CERT = lib.TSS2_BASE_RC_NO_CERT BASE_RC_NO_PCR = lib.TSS2_BASE_RC_NO_PCR BASE_RC_PCR_NOT_RESETTABLE = lib.TSS2_BASE_RC_PCR_NOT_RESETTABLE BASE_RC_BAD_TEMPLATE = lib.TSS2_BASE_RC_BAD_TEMPLATE BASE_RC_AUTHORIZATION_FAILED = lib.TSS2_BASE_RC_AUTHORIZATION_FAILED BASE_RC_AUTHORIZATION_UNKNOWN = lib.TSS2_BASE_RC_AUTHORIZATION_UNKNOWN BASE_RC_NV_NOT_READABLE = lib.TSS2_BASE_RC_NV_NOT_READABLE BASE_RC_NV_TOO_SMALL = lib.TSS2_BASE_RC_NV_TOO_SMALL BASE_RC_NV_NOT_WRITEABLE = lib.TSS2_BASE_RC_NV_NOT_WRITEABLE BASE_RC_POLICY_UNKNOWN = lib.TSS2_BASE_RC_POLICY_UNKNOWN BASE_RC_NV_WRONG_TYPE = lib.TSS2_BASE_RC_NV_WRONG_TYPE BASE_RC_NAME_ALREADY_EXISTS = lib.TSS2_BASE_RC_NAME_ALREADY_EXISTS BASE_RC_NO_TPM = lib.TSS2_BASE_RC_NO_TPM BASE_RC_BAD_KEY = lib.TSS2_BASE_RC_BAD_KEY BASE_RC_NO_HANDLE = lib.TSS2_BASE_RC_NO_HANDLE if _lib_version_atleast("tss2-esapi", "3.0.0"): BASE_RC_NOT_PROVISIONED = lib.TSS2_BASE_RC_NOT_PROVISIONED BASE_RC_ALREADY_PROVISIONED = lib.TSS2_BASE_RC_ALREADY_PROVISIONED LAYER_IMPLEMENTATION_SPECIFIC_OFFSET = lib.TSS2_LAYER_IMPLEMENTATION_SPECIFIC_OFFSET LEVEL_IMPLEMENTATION_SPECIFIC_SHIFT = lib.TSS2_LEVEL_IMPLEMENTATION_SPECIFIC_SHIFT RC_SUCCESS = lib.TSS2_RC_SUCCESS TCTI_RC_GENERAL_FAILURE = lib.TSS2_TCTI_RC_GENERAL_FAILURE TCTI_RC_NOT_IMPLEMENTED = lib.TSS2_TCTI_RC_NOT_IMPLEMENTED TCTI_RC_BAD_CONTEXT = lib.TSS2_TCTI_RC_BAD_CONTEXT TCTI_RC_ABI_MISMATCH = lib.TSS2_TCTI_RC_ABI_MISMATCH TCTI_RC_BAD_REFERENCE = lib.TSS2_TCTI_RC_BAD_REFERENCE TCTI_RC_INSUFFICIENT_BUFFER = lib.TSS2_TCTI_RC_INSUFFICIENT_BUFFER TCTI_RC_BAD_SEQUENCE = lib.TSS2_TCTI_RC_BAD_SEQUENCE TCTI_RC_NO_CONNECTION = lib.TSS2_TCTI_RC_NO_CONNECTION TCTI_RC_TRY_AGAIN = lib.TSS2_TCTI_RC_TRY_AGAIN TCTI_RC_IO_ERROR = lib.TSS2_TCTI_RC_IO_ERROR TCTI_RC_BAD_VALUE = lib.TSS2_TCTI_RC_BAD_VALUE TCTI_RC_NOT_PERMITTED = lib.TSS2_TCTI_RC_NOT_PERMITTED TCTI_RC_MALFORMED_RESPONSE = lib.TSS2_TCTI_RC_MALFORMED_RESPONSE TCTI_RC_NOT_SUPPORTED = lib.TSS2_TCTI_RC_NOT_SUPPORTED TCTI_RC_MEMORY = lib.TSS2_TCTI_RC_MEMORY SYS_RC_GENERAL_FAILURE = lib.TSS2_SYS_RC_GENERAL_FAILURE SYS_RC_ABI_MISMATCH = lib.TSS2_SYS_RC_ABI_MISMATCH SYS_RC_BAD_REFERENCE = lib.TSS2_SYS_RC_BAD_REFERENCE SYS_RC_INSUFFICIENT_BUFFER = lib.TSS2_SYS_RC_INSUFFICIENT_BUFFER SYS_RC_BAD_SEQUENCE = lib.TSS2_SYS_RC_BAD_SEQUENCE SYS_RC_BAD_VALUE = lib.TSS2_SYS_RC_BAD_VALUE SYS_RC_INVALID_SESSIONS = lib.TSS2_SYS_RC_INVALID_SESSIONS SYS_RC_NO_DECRYPT_PARAM = lib.TSS2_SYS_RC_NO_DECRYPT_PARAM SYS_RC_NO_ENCRYPT_PARAM = lib.TSS2_SYS_RC_NO_ENCRYPT_PARAM SYS_RC_BAD_SIZE = lib.TSS2_SYS_RC_BAD_SIZE SYS_RC_MALFORMED_RESPONSE = lib.TSS2_SYS_RC_MALFORMED_RESPONSE SYS_RC_INSUFFICIENT_CONTEXT = lib.TSS2_SYS_RC_INSUFFICIENT_CONTEXT SYS_RC_INSUFFICIENT_RESPONSE = lib.TSS2_SYS_RC_INSUFFICIENT_RESPONSE SYS_RC_INCOMPATIBLE_TCTI = lib.TSS2_SYS_RC_INCOMPATIBLE_TCTI SYS_RC_BAD_TCTI_STRUCTURE = lib.TSS2_SYS_RC_BAD_TCTI_STRUCTURE MU_RC_GENERAL_FAILURE = lib.TSS2_MU_RC_GENERAL_FAILURE MU_RC_BAD_REFERENCE = lib.TSS2_MU_RC_BAD_REFERENCE MU_RC_BAD_SIZE = lib.TSS2_MU_RC_BAD_SIZE MU_RC_BAD_VALUE = lib.TSS2_MU_RC_BAD_VALUE MU_RC_INSUFFICIENT_BUFFER = lib.TSS2_MU_RC_INSUFFICIENT_BUFFER ESYS_RC_GENERAL_FAILURE = lib.TSS2_ESYS_RC_GENERAL_FAILURE ESYS_RC_NOT_IMPLEMENTED = lib.TSS2_ESYS_RC_NOT_IMPLEMENTED ESYS_RC_ABI_MISMATCH = lib.TSS2_ESYS_RC_ABI_MISMATCH ESYS_RC_BAD_REFERENCE = lib.TSS2_ESYS_RC_BAD_REFERENCE ESYS_RC_INSUFFICIENT_BUFFER = lib.TSS2_ESYS_RC_INSUFFICIENT_BUFFER ESYS_RC_BAD_SEQUENCE = lib.TSS2_ESYS_RC_BAD_SEQUENCE ESYS_RC_INVALID_SESSIONS = lib.TSS2_ESYS_RC_INVALID_SESSIONS ESYS_RC_TRY_AGAIN = lib.TSS2_ESYS_RC_TRY_AGAIN ESYS_RC_IO_ERROR = lib.TSS2_ESYS_RC_IO_ERROR ESYS_RC_BAD_VALUE = lib.TSS2_ESYS_RC_BAD_VALUE ESYS_RC_NO_DECRYPT_PARAM = lib.TSS2_ESYS_RC_NO_DECRYPT_PARAM ESYS_RC_NO_ENCRYPT_PARAM = lib.TSS2_ESYS_RC_NO_ENCRYPT_PARAM ESYS_RC_BAD_SIZE = lib.TSS2_ESYS_RC_BAD_SIZE ESYS_RC_MALFORMED_RESPONSE = lib.TSS2_ESYS_RC_MALFORMED_RESPONSE ESYS_RC_INSUFFICIENT_CONTEXT = lib.TSS2_ESYS_RC_INSUFFICIENT_CONTEXT ESYS_RC_INSUFFICIENT_RESPONSE = lib.TSS2_ESYS_RC_INSUFFICIENT_RESPONSE ESYS_RC_INCOMPATIBLE_TCTI = lib.TSS2_ESYS_RC_INCOMPATIBLE_TCTI ESYS_RC_BAD_TCTI_STRUCTURE = lib.TSS2_ESYS_RC_BAD_TCTI_STRUCTURE ESYS_RC_MEMORY = lib.TSS2_ESYS_RC_MEMORY ESYS_RC_BAD_TR = lib.TSS2_ESYS_RC_BAD_TR ESYS_RC_MULTIPLE_DECRYPT_SESSIONS = lib.TSS2_ESYS_RC_MULTIPLE_DECRYPT_SESSIONS ESYS_RC_MULTIPLE_ENCRYPT_SESSIONS = lib.TSS2_ESYS_RC_MULTIPLE_ENCRYPT_SESSIONS ESYS_RC_RSP_AUTH_FAILED = lib.TSS2_ESYS_RC_RSP_AUTH_FAILED if _lib_version_atleast("tss2-fapi", "3.0.0"): FAPI_RC_GENERAL_FAILURE = lib.TSS2_FAPI_RC_GENERAL_FAILURE FAPI_RC_NOT_IMPLEMENTED = lib.TSS2_FAPI_RC_NOT_IMPLEMENTED FAPI_RC_BAD_REFERENCE = lib.TSS2_FAPI_RC_BAD_REFERENCE FAPI_RC_BAD_SEQUENCE = lib.TSS2_FAPI_RC_BAD_SEQUENCE FAPI_RC_IO_ERROR = lib.TSS2_FAPI_RC_IO_ERROR FAPI_RC_BAD_VALUE = lib.TSS2_FAPI_RC_BAD_VALUE FAPI_RC_NO_DECRYPT_PARAM = lib.TSS2_FAPI_RC_NO_DECRYPT_PARAM FAPI_RC_NO_ENCRYPT_PARAM = lib.TSS2_FAPI_RC_NO_ENCRYPT_PARAM FAPI_RC_MEMORY = lib.TSS2_FAPI_RC_MEMORY FAPI_RC_BAD_CONTEXT = lib.TSS2_FAPI_RC_BAD_CONTEXT FAPI_RC_NO_CONFIG = lib.TSS2_FAPI_RC_NO_CONFIG FAPI_RC_BAD_PATH = lib.TSS2_FAPI_RC_BAD_PATH FAPI_RC_NOT_DELETABLE = lib.TSS2_FAPI_RC_NOT_DELETABLE FAPI_RC_PATH_ALREADY_EXISTS = lib.TSS2_FAPI_RC_PATH_ALREADY_EXISTS FAPI_RC_KEY_NOT_FOUND = lib.TSS2_FAPI_RC_KEY_NOT_FOUND FAPI_RC_SIGNATURE_VERIFICATION_FAILED = ( lib.TSS2_FAPI_RC_SIGNATURE_VERIFICATION_FAILED ) FAPI_RC_HASH_MISMATCH = lib.TSS2_FAPI_RC_HASH_MISMATCH FAPI_RC_KEY_NOT_DUPLICABLE = lib.TSS2_FAPI_RC_KEY_NOT_DUPLICABLE FAPI_RC_PATH_NOT_FOUND = lib.TSS2_FAPI_RC_PATH_NOT_FOUND FAPI_RC_NO_CERT = lib.TSS2_FAPI_RC_NO_CERT FAPI_RC_NO_PCR = lib.TSS2_FAPI_RC_NO_PCR FAPI_RC_PCR_NOT_RESETTABLE = lib.TSS2_FAPI_RC_PCR_NOT_RESETTABLE FAPI_RC_BAD_TEMPLATE = lib.TSS2_FAPI_RC_BAD_TEMPLATE FAPI_RC_AUTHORIZATION_FAILED = lib.TSS2_FAPI_RC_AUTHORIZATION_FAILED FAPI_RC_AUTHORIZATION_UNKNOWN = lib.TSS2_FAPI_RC_AUTHORIZATION_UNKNOWN FAPI_RC_NV_NOT_READABLE = lib.TSS2_FAPI_RC_NV_NOT_READABLE FAPI_RC_NV_TOO_SMALL = lib.TSS2_FAPI_RC_NV_TOO_SMALL FAPI_RC_NV_NOT_WRITEABLE = lib.TSS2_FAPI_RC_NV_NOT_WRITEABLE FAPI_RC_POLICY_UNKNOWN = lib.TSS2_FAPI_RC_POLICY_UNKNOWN FAPI_RC_NV_WRONG_TYPE = lib.TSS2_FAPI_RC_NV_WRONG_TYPE FAPI_RC_NAME_ALREADY_EXISTS = lib.TSS2_FAPI_RC_NAME_ALREADY_EXISTS FAPI_RC_NO_TPM = lib.TSS2_FAPI_RC_NO_TPM FAPI_RC_TRY_AGAIN = lib.TSS2_FAPI_RC_TRY_AGAIN FAPI_RC_BAD_KEY = lib.TSS2_FAPI_RC_BAD_KEY FAPI_RC_NO_HANDLE = lib.TSS2_FAPI_RC_NO_HANDLE FAPI_RC_NOT_PROVISIONED = lib.TSS2_FAPI_RC_NOT_PROVISIONED FAPI_RC_ALREADY_PROVISIONED = lib.TSS2_FAPI_RC_ALREADY_PROVISIONED
[docs]@TPM_FRIENDLY_INT._fix_const_type class TPM2_EO(TPM_FRIENDLY_INT): EQ = lib.TPM2_EO_EQ NEQ = lib.TPM2_EO_NEQ SIGNED_GT = lib.TPM2_EO_SIGNED_GT UNSIGNED_GT = lib.TPM2_EO_UNSIGNED_GT SIGNED_LT = lib.TPM2_EO_SIGNED_LT UNSIGNED_LT = lib.TPM2_EO_UNSIGNED_LT SIGNED_GE = lib.TPM2_EO_SIGNED_GE UNSIGNED_GE = lib.TPM2_EO_UNSIGNED_GE SIGNED_LE = lib.TPM2_EO_SIGNED_LE UNSIGNED_LE = lib.TPM2_EO_UNSIGNED_LE BITSET = lib.TPM2_EO_BITSET BITCLEAR = lib.TPM2_EO_BITCLEAR
[docs]@TPM_FRIENDLY_INT._fix_const_type class TPM2_ST(TPM_FRIENDLY_INT): RSP_COMMAND = lib.TPM2_ST_RSP_COMMAND NULL = lib.TPM2_ST_NULL NO_SESSIONS = lib.TPM2_ST_NO_SESSIONS SESSIONS = lib.TPM2_ST_SESSIONS ATTEST_NV = lib.TPM2_ST_ATTEST_NV ATTEST_COMMAND_AUDIT = lib.TPM2_ST_ATTEST_COMMAND_AUDIT ATTEST_SESSION_AUDIT = lib.TPM2_ST_ATTEST_SESSION_AUDIT ATTEST_CERTIFY = lib.TPM2_ST_ATTEST_CERTIFY ATTEST_QUOTE = lib.TPM2_ST_ATTEST_QUOTE ATTEST_TIME = lib.TPM2_ST_ATTEST_TIME ATTEST_CREATION = lib.TPM2_ST_ATTEST_CREATION CREATION = lib.TPM2_ST_CREATION VERIFIED = lib.TPM2_ST_VERIFIED AUTH_SECRET = lib.TPM2_ST_AUTH_SECRET HASHCHECK = lib.TPM2_ST_HASHCHECK AUTH_SIGNED = lib.TPM2_ST_AUTH_SIGNED FU_MANIFEST = lib.TPM2_ST_FU_MANIFEST
[docs]@TPM_FRIENDLY_INT._fix_const_type class TPM2_SU(TPM_FRIENDLY_INT): CLEAR = lib.TPM2_SU_CLEAR STATE = lib.TPM2_SU_STATE
[docs]@TPM_FRIENDLY_INT._fix_const_type class TPM2_SE(TPM_FRIENDLY_INT): HMAC = lib.TPM2_SE_HMAC POLICY = lib.TPM2_SE_POLICY TRIAL = lib.TPM2_SE_TRIAL
[docs]@TPM_FRIENDLY_INT._fix_const_type class TPM2_CAP(TPM_FRIENDLY_INT): FIRST = lib.TPM2_CAP_FIRST ALGS = lib.TPM2_CAP_ALGS HANDLES = lib.TPM2_CAP_HANDLES COMMANDS = lib.TPM2_CAP_COMMANDS PP_COMMANDS = lib.TPM2_CAP_PP_COMMANDS AUDIT_COMMANDS = lib.TPM2_CAP_AUDIT_COMMANDS PCRS = lib.TPM2_CAP_PCRS TPM_PROPERTIES = lib.TPM2_CAP_TPM_PROPERTIES PCR_PROPERTIES = lib.TPM2_CAP_PCR_PROPERTIES ECC_CURVES = lib.TPM2_CAP_ECC_CURVES LAST = lib.TPM2_CAP_LAST VENDOR_PROPERTY = lib.TPM2_CAP_VENDOR_PROPERTY
[docs]@TPM_FRIENDLY_INT._fix_const_type class TPM2_PT(TPM_FRIENDLY_INT): NONE = lib.TPM2_PT_NONE GROUP = lib.TPM2_PT_GROUP FIXED = lib.TPM2_PT_FIXED LOCKOUT_COUNTER = lib.TPM2_PT_LOCKOUT_COUNTER LEVEL = lib.TPM2_PT_LEVEL REVISION = lib.TPM2_PT_REVISION DAY_OF_YEAR = lib.TPM2_PT_DAY_OF_YEAR YEAR = lib.TPM2_PT_YEAR MANUFACTURER = lib.TPM2_PT_MANUFACTURER FAMILY_INDICATOR = lib.TPM2_PT_FAMILY_INDICATOR INPUT_BUFFER = lib.TPM2_PT_INPUT_BUFFER ACTIVE_SESSIONS_MAX = lib.TPM2_PT_ACTIVE_SESSIONS_MAX CONTEXT_GAP_MAX = lib.TPM2_PT_CONTEXT_GAP_MAX MEMORY = lib.TPM2_PT_MEMORY CLOCK_UPDATE = lib.TPM2_PT_CLOCK_UPDATE ORDERLY_COUNT = lib.TPM2_PT_ORDERLY_COUNT MAX_COMMAND_SIZE = lib.TPM2_PT_MAX_COMMAND_SIZE MAX_RESPONSE_SIZE = lib.TPM2_PT_MAX_RESPONSE_SIZE MAX_DIGEST = lib.TPM2_PT_MAX_DIGEST MAX_OBJECT_CONTEXT = lib.TPM2_PT_MAX_OBJECT_CONTEXT MAX_SESSION_CONTEXT = lib.TPM2_PT_MAX_SESSION_CONTEXT SPLIT_MAX = lib.TPM2_PT_SPLIT_MAX TOTAL_COMMANDS = lib.TPM2_PT_TOTAL_COMMANDS VENDOR_COMMANDS = lib.TPM2_PT_VENDOR_COMMANDS MODES = lib.TPM2_PT_MODES VAR = lib.TPM2_PT_VAR PERMANENT = lib.TPM2_PT_PERMANENT STARTUP_CLEAR = lib.TPM2_PT_STARTUP_CLEAR LIBRARY_COMMANDS = lib.TPM2_PT_LIBRARY_COMMANDS ALGORITHM_SET = lib.TPM2_PT_ALGORITHM_SET LOADED_CURVES = lib.TPM2_PT_LOADED_CURVES MAX_AUTH_FAIL = lib.TPM2_PT_MAX_AUTH_FAIL LOCKOUT_INTERVAL = lib.TPM2_PT_LOCKOUT_INTERVAL LOCKOUT_RECOVERY = lib.TPM2_PT_LOCKOUT_RECOVERY
[docs]@TPM_FRIENDLY_INT._fix_const_type class TPM2_PT_VENDOR(TPM_FRIENDLY_INT): STRING_1 = lib.TPM2_PT_VENDOR_STRING_1 STRING_2 = lib.TPM2_PT_VENDOR_STRING_2 STRING_3 = lib.TPM2_PT_VENDOR_STRING_3 STRING_4 = lib.TPM2_PT_VENDOR_STRING_4 TPM_TYPE = lib.TPM2_PT_VENDOR_TPM_TYPE
[docs]@TPM_FRIENDLY_INT._fix_const_type class TPM2_PT_FIRMWARE(TPM_FRIENDLY_INT): VERSION_1 = lib.TPM2_PT_FIRMWARE_VERSION_1 VERSION_2 = lib.TPM2_PT_FIRMWARE_VERSION_2
[docs]@TPM_FRIENDLY_INT._fix_const_type class TPM2_PT_HR(TPM_FRIENDLY_INT): LOADED_MIN = lib.TPM2_PT_HR_LOADED_MIN NV_INDEX = lib.TPM2_PT_HR_NV_INDEX LOADED = lib.TPM2_PT_HR_LOADED LOADED_AVAIL = lib.TPM2_PT_HR_LOADED_AVAIL ACTIVE = lib.TPM2_PT_HR_ACTIVE ACTIVE_AVAIL = lib.TPM2_PT_HR_ACTIVE_AVAIL TRANSIENT_AVAIL = lib.TPM2_PT_HR_TRANSIENT_AVAIL PERSISTENT = lib.TPM2_PT_HR_PERSISTENT PERSISTENT_AVAIL = lib.TPM2_PT_HR_PERSISTENT_AVAIL TRANSIENT_MIN = lib.TPM2_PT_HR_TRANSIENT_MIN PERSISTENT_MIN = lib.TPM2_PT_HR_PERSISTENT_MIN
[docs]@TPM_FRIENDLY_INT._fix_const_type class TPM2_PT_NV(TPM_FRIENDLY_INT): COUNTERS_MAX = lib.TPM2_PT_NV_COUNTERS_MAX INDEX_MAX = lib.TPM2_PT_NV_INDEX_MAX BUFFER_MAX = lib.TPM2_PT_NV_BUFFER_MAX COUNTERS = lib.TPM2_PT_NV_COUNTERS COUNTERS_AVAIL = lib.TPM2_PT_NV_COUNTERS_AVAIL WRITE_RECOVERY = lib.TPM2_PT_NV_WRITE_RECOVERY
[docs]@TPM_FRIENDLY_INT._fix_const_type class TPM2_PT_CONTEXT(TPM_FRIENDLY_INT): HASH = lib.TPM2_PT_CONTEXT_HASH SYM = lib.TPM2_PT_CONTEXT_SYM SYM_SIZE = lib.TPM2_PT_CONTEXT_SYM_SIZE
[docs]@TPM_FRIENDLY_INT._fix_const_type class TPM2_PT_PS(TPM_FRIENDLY_INT): FAMILY_INDICATOR = lib.TPM2_PT_PS_FAMILY_INDICATOR LEVEL = lib.TPM2_PT_PS_LEVEL REVISION = lib.TPM2_PT_PS_REVISION DAY_OF_YEAR = lib.TPM2_PT_PS_DAY_OF_YEAR YEAR = lib.TPM2_PT_PS_YEAR
[docs]@TPM_FRIENDLY_INT._fix_const_type class TPM2_PT_AUDIT(TPM_FRIENDLY_INT): COUNTER_0 = lib.TPM2_PT_AUDIT_COUNTER_0 COUNTER_1 = lib.TPM2_PT_AUDIT_COUNTER_1
[docs]@TPM_FRIENDLY_INT._fix_const_type class TPM2_PT_PCR(TPM_FRIENDLY_INT): FIRST = lib.TPM2_PT_TPM2_PCR_FIRST SAVE = lib.TPM2_PT_PCR_SAVE EXTEND_L0 = lib.TPM2_PT_PCR_EXTEND_L0 RESET_L0 = lib.TPM2_PT_PCR_RESET_L0 EXTEND_L1 = lib.TPM2_PT_PCR_EXTEND_L1 RESET_L1 = lib.TPM2_PT_PCR_RESET_L1 EXTEND_L2 = lib.TPM2_PT_PCR_EXTEND_L2 RESET_L2 = lib.TPM2_PT_PCR_RESET_L2 EXTEND_L3 = lib.TPM2_PT_PCR_EXTEND_L3 RESET_L3 = lib.TPM2_PT_PCR_RESET_L3 EXTEND_L4 = lib.TPM2_PT_PCR_EXTEND_L4 RESET_L4 = lib.TPM2_PT_PCR_RESET_L4 NO_INCREMENT = lib.TPM2_PT_PCR_NO_INCREMENT DRTM_RESET = lib.TPM2_PT_PCR_DRTM_RESET POLICY = lib.TPM2_PT_PCR_POLICY AUTH = lib.TPM2_PT_PCR_AUTH LAST = lib.TPM2_PT_TPM2_PCR_LAST COUNT = lib.TPM2_PT_PCR_COUNT SELECT_MIN = lib.TPM2_PT_PCR_SELECT_MIN
[docs]@TPM_FRIENDLY_INT._fix_const_type class TPM2_PS(TPM_FRIENDLY_INT): MAIN = lib.TPM2_PS_MAIN PC = lib.TPM2_PS_PC PDA = lib.TPM2_PS_PDA CELL_PHONE = lib.TPM2_PS_CELL_PHONE SERVER = lib.TPM2_PS_SERVER PERIPHERAL = lib.TPM2_PS_PERIPHERAL TSS = lib.TPM2_PS_TSS STORAGE = lib.TPM2_PS_STORAGE AUTHENTICATION = lib.TPM2_PS_AUTHENTICATION EMBEDDED = lib.TPM2_PS_EMBEDDED HARDCOPY = lib.TPM2_PS_HARDCOPY INFRASTRUCTURE = lib.TPM2_PS_INFRASTRUCTURE VIRTUALIZATION = lib.TPM2_PS_VIRTUALIZATION TNC = lib.TPM2_PS_TNC MULTI_TENANT = lib.TPM2_PS_MULTI_TENANT TC = lib.TPM2_PS_TC
[docs]@TPM_FRIENDLY_INT._fix_const_type class TPM2_HT(TPM_FRIENDLY_INT): PCR = lib.TPM2_HT_PCR NV_INDEX = lib.TPM2_HT_NV_INDEX HMAC_SESSION = lib.TPM2_HT_HMAC_SESSION LOADED_SESSION = lib.TPM2_HT_LOADED_SESSION POLICY_SESSION = lib.TPM2_HT_POLICY_SESSION SAVED_SESSION = lib.TPM2_HT_SAVED_SESSION PERMANENT = lib.TPM2_HT_PERMANENT TRANSIENT = lib.TPM2_HT_TRANSIENT PERSISTENT = lib.TPM2_HT_PERSISTENT
[docs]@TPM_FRIENDLY_INT._fix_const_type class TPMA_SESSION(TPMA_FRIENDLY_INTLIST): CONTINUESESSION = lib.TPMA_SESSION_CONTINUESESSION AUDITEXCLUSIVE = lib.TPMA_SESSION_AUDITEXCLUSIVE AUDITRESET = lib.TPMA_SESSION_AUDITRESET DECRYPT = lib.TPMA_SESSION_DECRYPT ENCRYPT = lib.TPMA_SESSION_ENCRYPT AUDIT = lib.TPMA_SESSION_AUDIT
[docs]@TPM_FRIENDLY_INT._fix_const_type class TPMA_LOCALITY(TPMA_FRIENDLY_INTLIST): ZERO = lib.TPMA_LOCALITY_TPM2_LOC_ZERO ONE = lib.TPMA_LOCALITY_TPM2_LOC_ONE TWO = lib.TPMA_LOCALITY_TPM2_LOC_TWO THREE = lib.TPMA_LOCALITY_TPM2_LOC_THREE FOUR = lib.TPMA_LOCALITY_TPM2_LOC_FOUR EXTENDED_MASK = lib.TPMA_LOCALITY_EXTENDED_MASK EXTENDED_SHIFT = lib.TPMA_LOCALITY_EXTENDED_SHIFT
[docs] @classmethod def create_extended(cls, value): x = (1 << cls.EXTENDED_SHIFT) + value if x > 255: raise ValueError("Extended Localities must be less than 256") return x
[docs] @classmethod def parse(cls, value: str) -> "TPMA_LOCALITY": """Converts a string of | separated localities or an extended locality into a TPMA_LOCALITY instance Args: value (str): The string "bitwise" expression of the localities or the extended locality. Returns: The locality or set of localities as a TPMA_LOCALITY instance. Raises: TypeError: If the value is not a str. ValueError: If a field portion of the str does not match a constant. Examples: TPMA_LOCALITY.parse("zero|one") -> 0x03 TPMA_LOCALITY.parse("0xf0") -> 0xf0 """ try: return cls(value, base=0) except ValueError: pass return super().parse(value)
[docs] def __str__(self) -> str: """Given a set of localities or an extended locality, return the string representation Returns: (str): a bitwise string value of the localities or the exteded locality. Example: str(TPMA_LOCALITY.THREE|TPMA_LOCALITY.FOUR) -> 'three|four' str(TPMA_LOCALITY(0xf0)) -> '0xf0' """ if self > 31: return f"{self:#x}" return super().__str__()
[docs]@TPM_FRIENDLY_INT._fix_const_type class TPM2_NT(TPM_FRIENDLY_INT): ORDINARY = lib.TPM2_NT_ORDINARY COUNTER = lib.TPM2_NT_COUNTER BITS = lib.TPM2_NT_BITS EXTEND = lib.TPM2_NT_EXTEND PIN_FAIL = lib.TPM2_NT_PIN_FAIL PIN_PASS = lib.TPM2_NT_PIN_PASS
[docs]@TPM_FRIENDLY_INT._fix_const_type class TPM2_HR(TPM_FRIENDLY_INT): HANDLE_MASK = lib.TPM2_HR_HANDLE_MASK RANGE_MASK = lib.TPM2_HR_RANGE_MASK SHIFT = lib.TPM2_HR_SHIFT PCR = lib.TPM2_HR_PCR HMAC_SESSION = lib.TPM2_HR_HMAC_SESSION POLICY_SESSION = lib.TPM2_HR_POLICY_SESSION TRANSIENT = lib.TPM2_HR_TRANSIENT PERSISTENT = lib.TPM2_HR_PERSISTENT NV_INDEX = lib.TPM2_HR_NV_INDEX PERMANENT = lib.TPM2_HR_PERMANENT
[docs]@TPM_FRIENDLY_INT._fix_const_type class TPM2_HC(TPM_FRIENDLY_INT): HR_HANDLE_MASK = lib.TPM2_HR_HANDLE_MASK HR_RANGE_MASK = lib.TPM2_HR_RANGE_MASK HR_SHIFT = lib.TPM2_HR_SHIFT HR_PCR = lib.TPM2_HR_PCR HR_HMAC_SESSION = lib.TPM2_HR_HMAC_SESSION HR_POLICY_SESSION = lib.TPM2_HR_POLICY_SESSION HR_TRANSIENT = lib.TPM2_HR_TRANSIENT HR_PERSISTENT = lib.TPM2_HR_PERSISTENT HR_NV_INDEX = lib.TPM2_HR_NV_INDEX HR_PERMANENT = lib.TPM2_HR_PERMANENT PCR_FIRST = lib.TPM2_PCR_FIRST PCR_LAST = lib.TPM2_PCR_LAST HMAC_SESSION_FIRST = lib.TPM2_HMAC_SESSION_FIRST HMAC_SESSION_LAST = lib.TPM2_HMAC_SESSION_LAST LOADED_SESSION_FIRST = lib.TPM2_LOADED_SESSION_FIRST LOADED_SESSION_LAST = lib.TPM2_LOADED_SESSION_LAST POLICY_SESSION_FIRST = lib.TPM2_POLICY_SESSION_FIRST POLICY_SESSION_LAST = lib.TPM2_POLICY_SESSION_LAST TRANSIENT_FIRST = lib.TPM2_TRANSIENT_FIRST ACTIVE_SESSION_FIRST = lib.TPM2_ACTIVE_SESSION_FIRST ACTIVE_SESSION_LAST = lib.TPM2_ACTIVE_SESSION_LAST TRANSIENT_LAST = lib.TPM2_TRANSIENT_LAST PERSISTENT_FIRST = lib.TPM2_PERSISTENT_FIRST PERSISTENT_LAST = lib.TPM2_PERSISTENT_LAST PLATFORM_PERSISTENT = lib.TPM2_PLATFORM_PERSISTENT NV_INDEX_FIRST = lib.TPM2_NV_INDEX_FIRST NV_INDEX_LAST = lib.TPM2_NV_INDEX_LAST PERMANENT_FIRST = lib.TPM2_PERMANENT_FIRST PERMANENT_LAST = lib.TPM2_PERMANENT_LAST
[docs]@TPM_FRIENDLY_INT._fix_const_type class TPM2_CLOCK(TPM_FRIENDLY_INT): COARSE_SLOWER = lib.TPM2_CLOCK_COARSE_SLOWER MEDIUM_SLOWER = lib.TPM2_CLOCK_MEDIUM_SLOWER FINE_SLOWER = lib.TPM2_CLOCK_FINE_SLOWER NO_CHANGE = lib.TPM2_CLOCK_NO_CHANGE FINE_FASTER = lib.TPM2_CLOCK_FINE_FASTER MEDIUM_FASTER = lib.TPM2_CLOCK_MEDIUM_FASTER COARSE_FASTER = lib.TPM2_CLOCK_COARSE_FASTER
TPM2_CLOCK_ADJUST = TPM2_CLOCK
[docs]@TPM_FRIENDLY_INT._fix_const_type class TPMA_NV(TPMA_FRIENDLY_INTLIST): _FIXUP_MAP = {"NODA": "NO_DA"} _MASKS = ((lib.TPMA_NV_TPM2_NT_MASK, lib.TPMA_NV_TPM2_NT_SHIFT, "nt"),) PPWRITE = lib.TPMA_NV_PPWRITE OWNERWRITE = lib.TPMA_NV_OWNERWRITE AUTHWRITE = lib.TPMA_NV_AUTHWRITE POLICYWRITE = lib.TPMA_NV_POLICYWRITE TPM2_NT_MASK = lib.TPMA_NV_TPM2_NT_MASK TPM2_NT_SHIFT = lib.TPMA_NV_TPM2_NT_SHIFT POLICY_DELETE = lib.TPMA_NV_POLICY_DELETE WRITELOCKED = lib.TPMA_NV_WRITELOCKED WRITEALL = lib.TPMA_NV_WRITEALL WRITEDEFINE = lib.TPMA_NV_WRITEDEFINE WRITE_STCLEAR = lib.TPMA_NV_WRITE_STCLEAR GLOBALLOCK = lib.TPMA_NV_GLOBALLOCK PPREAD = lib.TPMA_NV_PPREAD OWNERREAD = lib.TPMA_NV_OWNERREAD AUTHREAD = lib.TPMA_NV_AUTHREAD POLICYREAD = lib.TPMA_NV_POLICYREAD NO_DA = lib.TPMA_NV_NO_DA ORDERLY = lib.TPMA_NV_ORDERLY CLEAR_STCLEAR = lib.TPMA_NV_CLEAR_STCLEAR READLOCKED = lib.TPMA_NV_READLOCKED WRITTEN = lib.TPMA_NV_WRITTEN PLATFORMCREATE = lib.TPMA_NV_PLATFORMCREATE READ_STCLEAR = lib.TPMA_NV_READ_STCLEAR @property def nt(self) -> TPM2_NT: """TPM2_NT: The type of the NV area""" return TPM2_NT((self & self.TPM2_NT_MASK) >> self.TPM2_NT_SHIFT)
[docs]@TPM_FRIENDLY_INT._fix_const_type class TPMA_CC(TPMA_FRIENDLY_INTLIST): _MASKS = ( (lib.TPMA_CC_COMMANDINDEX_MASK, lib.TPMA_CC_COMMANDINDEX_SHIFT, "commandindex"), (lib.TPMA_CC_CHANDLES_MASK, lib.TPMA_CC_CHANDLES_SHIFT, "chandles"), ) COMMANDINDEX_MASK = lib.TPMA_CC_COMMANDINDEX_MASK COMMANDINDEX_SHIFT = lib.TPMA_CC_COMMANDINDEX_SHIFT RESERVED1_MASK = lib.TPMA_CC_RESERVED1_MASK NV = lib.TPMA_CC_NV EXTENSIVE = lib.TPMA_CC_EXTENSIVE FLUSHED = lib.TPMA_CC_FLUSHED CHANDLES_MASK = lib.TPMA_CC_CHANDLES_MASK CHANDLES_SHIFT = lib.TPMA_CC_CHANDLES_SHIFT RHANDLE = lib.TPMA_CC_RHANDLE V = lib.TPMA_CC_V RES_MASK = lib.TPMA_CC_RES_MASK RES_SHIFT = lib.TPMA_CC_RES_SHIFT @property def commandindex(self) -> int: """int: The command index""" return self & self.COMMANDINDEX_MASK @property def chandles(self) -> int: """int: The number of handles in the handle area""" return (self & self.CHANDLES_MASK) >> self.CHANDLES_SHIFT
[docs]@TPM_FRIENDLY_INT._fix_const_type class TPMA_OBJECT(TPMA_FRIENDLY_INTLIST): FIXEDTPM = lib.TPMA_OBJECT_FIXEDTPM STCLEAR = lib.TPMA_OBJECT_STCLEAR FIXEDPARENT = lib.TPMA_OBJECT_FIXEDPARENT SENSITIVEDATAORIGIN = lib.TPMA_OBJECT_SENSITIVEDATAORIGIN USERWITHAUTH = lib.TPMA_OBJECT_USERWITHAUTH ADMINWITHPOLICY = lib.TPMA_OBJECT_ADMINWITHPOLICY NODA = lib.TPMA_OBJECT_NODA ENCRYPTEDDUPLICATION = lib.TPMA_OBJECT_ENCRYPTEDDUPLICATION RESTRICTED = lib.TPMA_OBJECT_RESTRICTED DECRYPT = lib.TPMA_OBJECT_DECRYPT SIGN_ENCRYPT = lib.TPMA_OBJECT_SIGN_ENCRYPT DEFAULT_TPM2_TOOLS_CREATE_ATTRS = ( lib.TPMA_OBJECT_DECRYPT | lib.TPMA_OBJECT_SIGN_ENCRYPT | lib.TPMA_OBJECT_FIXEDTPM | lib.TPMA_OBJECT_FIXEDPARENT | lib.TPMA_OBJECT_SENSITIVEDATAORIGIN | lib.TPMA_OBJECT_USERWITHAUTH ) DEFAULT_TPM2_TOOLS_CREATEPRIMARY_ATTRS = ( lib.TPMA_OBJECT_RESTRICTED | lib.TPMA_OBJECT_DECRYPT | lib.TPMA_OBJECT_FIXEDTPM | lib.TPMA_OBJECT_FIXEDPARENT | lib.TPMA_OBJECT_SENSITIVEDATAORIGIN | lib.TPMA_OBJECT_USERWITHAUTH ) _FIXUP_MAP = { "SIGN": "SIGN_ENCRYPT", "ENCRYPT": "SIGN_ENCRYPT", }
[docs]@TPM_FRIENDLY_INT._fix_const_type class TPMA_ALGORITHM(TPM_FRIENDLY_INT): ASYMMETRIC = lib.TPMA_ALGORITHM_ASYMMETRIC SYMMETRIC = lib.TPMA_ALGORITHM_SYMMETRIC HASH = lib.TPMA_ALGORITHM_HASH OBJECT = lib.TPMA_ALGORITHM_OBJECT RESERVED1_MASK = lib.TPMA_ALGORITHM_RESERVED1_MASK SIGNING = lib.TPMA_ALGORITHM_SIGNING ENCRYPTING = lib.TPMA_ALGORITHM_ENCRYPTING METHOD = lib.TPMA_ALGORITHM_METHOD
[docs]@TPM_FRIENDLY_INT._fix_const_type class TPMA_PERMANENT(TPMA_FRIENDLY_INTLIST): OWNERAUTHSET = lib.TPMA_PERMANENT_OWNERAUTHSET ENDORSEMENTAUTHSET = lib.TPMA_PERMANENT_ENDORSEMENTAUTHSET LOCKOUTAUTHSET = lib.TPMA_PERMANENT_LOCKOUTAUTHSET RESERVED1_MASK = lib.TPMA_PERMANENT_RESERVED1_MASK DISABLECLEAR = lib.TPMA_PERMANENT_DISABLECLEAR INLOCKOUT = lib.TPMA_PERMANENT_INLOCKOUT TPMGENERATEDEPS = lib.TPMA_PERMANENT_TPMGENERATEDEPS RESERVED2_MASK = lib.TPMA_PERMANENT_RESERVED2_MASK
[docs]@TPM_FRIENDLY_INT._fix_const_type class TPMA_STARTUP(TPMA_FRIENDLY_INTLIST): CLEAR_PHENABLE = lib.TPMA_STARTUP_CLEAR_PHENABLE CLEAR_SHENABLE = lib.TPMA_STARTUP_CLEAR_SHENABLE CLEAR_EHENABLE = lib.TPMA_STARTUP_CLEAR_EHENABLE CLEAR_PHENABLENV = lib.TPMA_STARTUP_CLEAR_PHENABLENV CLEAR_RESERVED1_MASK = lib.TPMA_STARTUP_CLEAR_RESERVED1_MASK CLEAR_ORDERLY = lib.TPMA_STARTUP_CLEAR_ORDERLY
[docs]@TPM_FRIENDLY_INT._fix_const_type class TPMA_MEMORY(TPM_FRIENDLY_INT): SHAREDRAM = lib.TPMA_MEMORY_SHAREDRAM SHAREDNV = lib.TPMA_MEMORY_SHAREDNV OBJECTCOPIEDTORAM = lib.TPMA_MEMORY_OBJECTCOPIEDTORAM
[docs]@TPM_FRIENDLY_INT._fix_const_type class TPM2_MAX(TPM_FRIENDLY_INT): DIGEST_BUFFER = lib.TPM2_MAX_DIGEST_BUFFER NV_BUFFER_SIZE = lib.TPM2_MAX_NV_BUFFER_SIZE PCRS = lib.TPM2_MAX_PCRS ALG_LIST_SIZE = lib.TPM2_MAX_ALG_LIST_SIZE CAP_CC = lib.TPM2_MAX_CAP_CC CAP_BUFFER = lib.TPM2_MAX_CAP_BUFFER CONTEXT_SIZE = lib.TPM2_MAX_CONTEXT_SIZE
[docs]@TPM_FRIENDLY_INT._fix_const_type class TPMA_MODES(TPMA_FRIENDLY_INTLIST): FIPS_140_2 = lib.TPMA_MODES_FIPS_140_2 RESERVED1_MASK = lib.TPMA_MODES_RESERVED1_MASK
# # We specifically keep these constants around even when FAPI is missing so they may be used # without conditional worry and we DONT use lib prefix here because the constants are only # present if FAPI is installed. So just use the values directly. #
[docs]@TPM_FRIENDLY_INT._fix_const_type class FAPI_ESYSBLOB(TPM_FRIENDLY_INT): CONTEXTLOAD = 1 DESERIALIZE = 2