Lines Matching refs:an
970 an algorithm selector.
975 indicates that an authorization session is required for use of the entity associated with the handl…
976 If a handle does not have this symbol, then an authorization session is not allowed.
993 to indicate that the command may result in an update of NV memory and be subject to rate
996 NOTE Any command that uses authorization may cause a write to NV if there is an authorization
1034 contain an “Auth Index:” entry for the handle. This entry indicates the number of the authorization
1060 USER and the handle is an Object, the type of authorization is determined by the setting of
1061 userWithAuth in the Object's attributes. If the Auth Role is ADMIN and the handle is an Object, the
1073 If the handle references an NV Index, then the allowed authorizations are determined by the
1149 b) The TPM shall successfully unmarshal a UINT32 as the commandSize. If the TPM has an interface
1212 The TPM may unmarshal a handle and validate that it references an entity on the TPM before
1255 3) If the handle references an NV Index, then
1258 an Index exists that corresponds to the handle (TPM_RC_HANDLE); and
1269 an
1304 b) If the tag is TPM_ST_SESSIONS, the TPM will attempt to unmarshal an authorizationSize and return
1305 TPM_RC_AUTHSIZE if the value is not within an acceptable range.
1318 1) If the session handle is not a handle for an HMAC session, a handle for a policy session, or,
1398 c) If the object or NV Index is subject to DA protection, and the authorization is with an HMAC or
1423 1) If the entity being authorized is an object and its adminWithPolicy attribute is SET, then the
1429 2) If the entity being authorized is an NV Index, then the associated authorization session is a po…
1451 1) If the entity being authorized is an object and its userWithAuth attribute is CLEAR, then the
1453 2) If the entity being authorized is an NV Index;
1464 if the authorization is an HMAC session or a password;
1519 7) if the authorization uses an HMAC, then the HMAC is properly constructed using the authValue
1531 If the TPM returns an error other than TPM_RC_AUTH_FAIL then the TPM shall not alter any TPM state.
1543 If an authorization session has the TPMA_SESSION.decrypt attribute SET, and the command does not
1585 When an error is encountered while unmarshaling a command parameter, an error response code is
1617 a parameter that should be an asymmetric algorithm selection does not have a
1656 a non-zero value was found in a reserved field of an attribute structure (TPMA_)
1699 appropriate, generate an HMAC.
1750 A special case exists when the command tag parameter is not an allowed value (TPM_ST_SESSIONS or
1762 that the logic associated with dictionary attack protection is allowed to be modified when an autho…
1794 When the TPM receives an indication that the current command should be
1851 need an object 'slot'. The most common case where this might be returned is
1852 when an object is loaded (TPM2_Load, TPM2_CreatePrimary(), or
1928 an error.
2092 In the reference implementation, this signal causes an internal flag ( s_initialized) to be CLEAR.
3035 would allow the TPM to generate an interrupt when the “background” processing is complete. This
3179 If toTest contains an algorithm that has already been tested, it will not be tested again.
3182 The only way to force retesting of an algorithm is with TPM2_SelfTest( fullTest = YES).
3187 Making toTest an empty list allows the determination of the algorithms that remain untested without
3189 If toTest is not an empty list, the TPM shall return TPM_RC_SUCCESS for this command and then return
3345 This command returns manufacturer-specific information regarding the results of a self-test and an
3351 TPM is in Failure mode because of an invalid startupType in TPM2_Startup(), testResult will be
3494 This command is used to start an authorization session using alternative methods of establishing the
3502 If tpmKey Is TPM_RH_NULL, then encryptedSalt is required to be an Empty Buffer.
3513 sessionKey value, it is an authorization failure that will trigger the dictionary attack logic.
3515 The entity referenced with the bind parameter contributes an authorization value to the sessionKey
3522 This command starts an authorization session and returns the session handle along with an initial
3535 an
3552 a) tpmKey references an RSA key and
3572 b) tpmKey references an ECC key and encryptedSalt
3578 produce the final secret value. The size of the secret value is an input parameter to the KDF
3584 between the session and an object (the bind object). If sessionType is TPM_SE_POLICY or
3609 an authValue is not needed when the authorization is used;
3617 the session is not an audit session; and
3624 used to compute the authPolicy for an object.
3628 …stablish the orderly state of the TPM. This is because the created context will occupy an available
3846 is larget than the digest size of the nameAlg of tpmKey; or, for an
3883 // If an decrypt key is passed in, check its validation
4182 This command is used to create an object that can be loaded into a TPM using TPM2_Load(). If the
4193 structure (inPublic), an initial value for the object’s authValue (inSensitive.authValue), and, if …
4194 a symmetric object, an optional initial data value (inSensitive.data). The TPM shall validate the
4201 The sensitiveDataOrigin attribute of inPublic shall be SET if inSensitive.data is an Empty Buffer a…
4202 CLEAR if inSensitive.data is not an Empty Buffer or the TPM shall return TPM_RC_ATTRIBUTES.
4223 b) If the Object is an asymmetric key:
4245 5) If the key is an ECC key and the scheme required by the curveID is not the same as scheme in
4247 6) If the key is an ECC key and the KDF required by the curveID is not the same as kdf in the pubic
4251 There is currently no command in which the caller may specify the KDF to be used with an
4257 1) If inSensitive.data is an Empty Buffer, and neither sign nor decrypt is SET in inPublic.attribut…
4259 2) If inSensitive.data is not an Empty Buffer, the TPM will copy the inSensitive.data to
4276 3) If inSensitive.data is an Empty Buffer, a TPM-generated key value that is the size of the digest
4455 sensitiveDataOrigin is CLEAR when 'sensitive. data' is an Empty
4460 for an asymmetric key; attempt to create a symmetric cipher key that
4474 invalid key size values in an asymmetric key public area
4484 FOr() an RSA key, the exponent value is not supported.
4513 parameters for an RSA key; unsupported name algorithm for an ECC
4702 Loading an object is not the same as restoring a saved object context.
4735 properly linked, cryptographically. Use of an object includes use in any policy command. If the par…
4750 For an ECC key, the public point shall be f(x) where x is the private key.
5102 This command is used to load an object that is not a Protected Object into the TPM. The command all…
5106 Typical use for loading a public area is to allow the TPM to validate an asymmetric signature.
5115 If both the public and private portions of an object are loaded, the object is not allowed to appea…
5135 an object with no Name is computed, no Name value is included in the HMAC. To ensure that these
5136 unnamed entities are not substituted, they should have an authValue that is statistically unique.
5147 For an ECC object, the TPM will verify that the public key is on the curve of the key before the pu…
5154 Consistency checks are necessary because an object with a Name needs to have the public and
5155 sensitive portions cryptographically bound so that an attacker cannot mix pubic and sensitive areas.
5300 'fixedParent" and fixedTPM must be CLEAR on on an external key if
5314 loading public and private parts of an object
5327 if there is no free slot for an object
5409 // For loading an object with both public and sensitive
5558 TPM handle of an object
5586 structure containing the public area of an object
5713 This command enables the association of a credential with an object in a way that ensures that the …
5851 secret is invalid (when keyHandle is an ECC key)
5855 secret is invalid (when keyHandle is an ECC key)
5863 secret is invalid (when keyHandle is an ECC key)
5872 keyHandle does not reference an asymmetric key.
5916 secret is invalid (when keyHandle is an RSA key)
5952 // input decrypt key must be an asymmetric, restricted decryption key
6030 TPM2B_ID_OBJECT containing an activation credential.
6147 handle referenced an ECC key that has a unique field that is not a
6202 handle does not reference an asymmetric decryption key
6231 // input key must be an asymmetric, restricted decryption key
6478 This command may not be used to change the authorization value for an NV Index or a Primary Object.
6481 If an NV Index is to have a new authorization, it is done with TPM2_NV_ChangeAuth().
6766 to use an object does not grant authority to duplicate the object.
6855 shall reference the public area of an asymmetric key
6899 If the caller provided an encryption key or if
7051 // an inner wrapper and the new parent may not be TPM_RH_NULL
7190 use of the oldParent is provided, then an HMAC key and a symmetric key are recovered from inSymSeed
7253 an object encrypted using symmetric key derived from
7300 an object encrypted using symmetric key derived from
7338 for an ECC key, the public key is not on the curve of the curve ID
7351 for an 'oldParent; RSA key, the data to be decrypted is greater than
7619 This command allows an object to be encrypted using the symmetric encryption values of a Storage Ke…
7636 TPM_RC_ATTRIBUTES if inSymSeed is an empty buffer.
7668 not validated by this command, the binding must be checked each time the object is loaded. For an
7671 loaded, or before the TPM performs an operation for which the binding affects the outcome of the
7676 versions) on which the new parent exists. This means that, each time an object is loaded under a
7778 contain an inner symmetric wrapper
7893 invalid key size in objectPublic representing an asymmetric key
8074 // See if there is an outer wrapper
8216 implemented in the TPM. Many of these commands are only allowed if the asymmetric key is an
8227 The key referenced by keyHandle is required to be an RSA key (TPM_RC_KEY) with the decrypt attribute
8240 3) TPM_ALG_NULL – Data is not padded by the TPM and the TPM will treat message as an
8322 consistency of the attributes. The only property checking is that the key is an RSA key and that the
8499 keyHandle does not reference an RSA key
8584 // selected key must be an RSA key
8656 The key referenced by keyHandle shall be an RSA key (TPM_RC_KEY) with restricted CLEAR and
8662 returned with the padding removed. If no padding is used, the returned value is an unsigned integer…
8802 keyHandle does not reference an unrestricted decrypt key
8891 // The selected key must be an RSA key
8894 // The selected key must be an unrestricted decryption key
8982 This command uses the TPM to generate an ephemeral key pair (de, Qe where Qe ≔ [de]G). It uses the …
9443 This command returns the parameters of an ECC curve identified by its TCG-assigned curveID.
9571 TPM2_EC_Ephemeral(). TPM2_EC_Ephemeral() generates an ephemeral key and returns the public
9574 The input parameters for this command are a static public key (inQsU), an ephemeral key (inQeU) from
9581 It is an error if inQsB or inQeB are not on the curve of keyA (TPM_RC_ECC_POINT).
9582 The two-phase key schemes that were assigned an algorithm ID as of the time of the publication of t…
9611 For TPM_ALG_ECMQV or TPM_ALG_SM2 outZ1 will be Z and outZ2 will be an Empty Point.
9618 MQV (including SM2), outZ1 will contain the computed value and outZ2 will be an Empty Point.
9621 The Z values returned by the TPM are a full point and not ju st an x-coordinate.
9623 …utation of either Z produces the point at infinity, then the corresponding Z value will be an Empty
9663 handle of an unrestricted decryption key ECC
9766 key referenced by keyA is not an ECC key
9845 // keyA must be an ECC key
9958 Some of the symmetric encryption/decryption modes use an IV. When an IV is used, it may be an
9996 All the bits of the IV are incremented as if it were an unsigned integer.
10011 next block. The last ciphertext block then is used as an IV for the next buffer.
10016 inData is required to be an even multiple of the block encrypted by the selected algorithm
10022 Similar to CBC in that the last ciphertext block is an input to the encryption of the next block.
10034 inData is required to be an even multiple of the block encrypted by the selected algorithm
10059 (TPM_RC_VALUE). For an unrestricted key, mode may be the same or different from the mode of the key
10127 an initial value as required by the algorithm
10196 not an even multiple of the block size for CBC or ECB mode
10300 // have an iv size same as encryption block size
10365 // The input data size of CBC mode or ECB mode must be an even multiple of
10657 This command performs an HMAC on the supplied data using the indicated hash algorithm.
10785 key referenced by handle is not an HMAC key
10871 // Make sure that the key is an HMAC signing key
10960 an infrequent occurrence.
11251 All of the commands in this group are to support sequences for which an intermediate state must be
11258 This command starts an HMAC sequence. The TPM will create and initialize an HMAC sequence
11408 handle of an HMAC key
11477 no space to create an internal object
11481 key referenced by handle is not an HMAC key
11562 // Make sure that the key is an HMAC signing key
11636 This command starts a hash or an Event sequence. If hashAlg is an implemented hash, then a hash
11637 sequence is started. If hashAlg is TPM_ALG_NULL, then an Event sequence is started. If hashAlg is
11638 neither an implemented algorithm nor TPM_ALG_NULL, then the TPM shall return TPM_RC_HASH.
11639 Depending on hashAlg, the TPM will create and initialize a hash sequence structure or an Event
11641 sequence to the value in auth. A sequence structure for an Event (hashAlg = TPM_ALG_NULL) contains
11760 no space to create an internal object
11809 Proper authorization for the sequence object associated with sequenceHandle is required. If an
11810 authorization or audit of this command requires computation of a cpHash and an rpHash, the Name
12082 This command is not used to complete an Event sequence. TPM2_EventSequenceComplete() is
12095 If sequenceHandle references an Event sequence, then the TPM shall return TPM_RC_MODE.
12096 Proper authorization for the sequence object associated with sequenceHandle is required. If an
12097 authorization or audit of this command requires computation of a cpHash and an rpHash, the Name
12434 This command adds the last part of data, if any, to an Event sequence and returns the result in a d…
12439 Proper authorization for the sequence object associated with sequenceHandle is required. If an
12440 authorization or audit of this command requires computation of a cpHash and an rpHash, the Name
12635 // input handle must reference an event sequence object
12644 // if an extend is going to take place, then check to see if there has
12645 // been an orderly shutdown. If so, and the selected PCR is one of the
12651 // check to see if there was an orderly shutdown and not do anything if
12743 The attestation commands cause the TPM to sign an internally generated data structure. The contents…
12753 an ECC key). If the caller sets scheme to TPM_ALG_NULL, then the default scheme of the key is used.
12759 might be in an attestation structure.
12767 TPM2_NV_Certify() is an attestation command that is documented in 1. The remaining attestation
12792 If the signing scheme of signHandle is an anonymous scheme, then the attestation blocks will not co…
12831 The purpose of this command is to prove that an object with a specific Name is loaded in the TPM. By
12841 use. That is, authority to use an object does not grant authority to certify the object.
13035 small (for an RSA key); invalid commit status (for an ECC key with a
13151 This command is used to prove the association between an object and its creation data. The TPM will
13370 small (for an RSA key); invalid commit status (for an ECC key with a
13824 If sessionHandle is not an audit session, the TPM shall return TPM_RC_TYPE.
13827 A session does not become an audit session until the successful completion of the command in
13828 which the session is first used as an audit session.
13985 sessionHandle does not reference an audit session
14034 signHandle (for an RSA key); invalid commit status or failed to
14035 generate r value (for an ECC key)
14062 // session must be an audit session
14169 audited, and the audit hash algorithm. These values are placed in an attestation structure and sign…
14368 signHandle (for an RSA key); invalid commit status or failed to
14369 generate r value (for an ECC key)
14520 The purpose of this duplication is to allow an entity who is trusted by the privacy Administrator to
14705 signHandle (for an RSA key); invalid commit status or failed to
14706 generate r value (for an ECC key)
14822 command in which they are created. Examples of this use are TPM2_Duplicate() where an ephemeral
14826 For these uses, TPM2_Commit() or TPM2_EC_Ephemeral() may be used to have the TPM create an
14830 When an ephemeral EC key is created, it is assigned a number and that number is returned to the cal…
14848 usage. When a counter value is used to create a key, a bit in an array may be set to indicate that …
14874 TPM2_Commit() performs the first part of an ECC anonymous signing operation. The TPM will perform
14876 parameter shall refer to an ECC key with the sign attribute (TPM_RC_ATTRIBUTES) using an
14878 For this command, p1, s2 and y2 are optional parameters. If s2 is an Empty Buffer, then the TPM sha…
14879 return TPM_RC_SIZE if y2 is not an Empty Buffer. If p1, s2, and y2 are all Empty Buffers, the TPM s…
14918 b) if s2 is not an Empty Buffer, compute x2 ≔ HnameAlg (s2) mod p, else skip to step (e)
14930 g) if p1 is an Empty Buffer, skip to step i)
14938 if K is not an Empty Buffer, set L ≔ [r] (x2, y2)
14966 Depending on the input parameters K and L may be Empty Buffers or E may be an Empty Buffer
15112 keyHandle does not reference an ECC key
15202 // Input key must be an ECC key
15205 // if the key is restricted, it must be a signing key using an anonymous scheme
15216 // if not restricted, s2, and y2 must be an Empty Buffer
15348 // NOTE: an "empty" point has two UINT16 values which are the size values
15445 TPM2_EC_Ephemeral() creates an ephemeral key for use in a two-phase key exchange protocol.
15446 The TPM will use the commit mechanism to assign an ephemeral key r and compute a public point Q ≔
15637 If keyHandle references an asymmetric key, only the public portion of the key needs to be loaded. If
15912 This command causes the TPM to sign an externally provided hash with the specified asymmetric signi…
15916 Symmetric “signing” is done with an HMAC.
15937 If the scheme of keyHandle is an anonymous scheme, then inScheme shall have the same scheme
16161 // the default scheme, return an error.
16271 Because the audit digest is cleared, the audit counter will increment the next time that an audited
16274 Use of TPM2_SetCommandCodeAuditStatus() to change the list of audited commands is an audited
16283 the commands in clearList indicate the commands that will no longer be audited. It is not an error …
16284 command in setList is already audited or is not implemented. It is not an error if a command in cle…
16552 In TPM 1.2, an Event was hashed using SHA-1 and then the 20-octet digest was extended to a PCR
16562 To support recording of an Event that is larger than the TPM input buffer, the caller may use the
16564 Change to a PCR requires authorization. The authorization may be with either an authorization value…
16565 an authorization policy. The platform-specific specifications determine which PCR may be controlled…
16570 TPM_ALG_NULL, then no policy is present and the authorization requires an EmptyAuth.
16607 This command is used to cause an update to the indicated PCR. The digests parameter contains one or
16608 more tagged digest value identified by an algorithm ID. For each digest, the PCR associated with
16856 data left over. In either case, it will cause an unmarshaling error and this
16902 This command is used to cause an update to the indicated PCR.
16905 references an implemented PCR and not TPM_ALG_NULL, digests list is processed as in
16907 A TPM shall support an Event.size of zero through 1,024 inclusive (Event.size is an octet count). An
16911 If the command implements PCR[2] in a SHA1 bank and a SHA256 bank, then an extend to PCR[2]
17518 // an implementation choice to check in this routine rather than in a common
17566 It is expected that the typical default will be with the policy hash set to TPM_ALG_NULL and an
17567 Empty Buffer for the authPolicy value. This will allow an EmptyAuth to be used as the authorization
17789 specification as allowing an authorization value. If the TPM implementation does not allow an
17835 handle for a PCR that may have an authorization value
17943 // If PCR does not belong to an auth group, return TPM_RC_VALUE
18173 Measurement (D-CRTM) measurement sequence. On receipt of this indication, the TPM will initialize an
18175 …ject memory is available for creation of the sequence context, the TPM will flush the context of an
18180 …this indication occurs after TPM2_Startup(), it is the responsibility of software to ensure that an
18181 object context slot is available or to deal with the consequences of having the TPM select an
18266 // Create an event sequence object and store the handle in global
18277 // a handle that is assigned an free it for the DRTM sequence.
18294 // Try to create an event sequence object again. This time, we must
18469 a platform-specific specification excludes modifications of PCR[DRTM] from causing an increment.
18470 A platform-specific specification may allow an H-CRTM Event Sequence before TPM2_Startup(). If so,
18594 // Complete hash and extend PCR, or if this is an HCRTM, complete
18666 authorizations required to use an object have been provided. Many of the commands will also modify
18684 Unless there is an unmarshaling error in the parameters of the command, these commands will
18737 d) cpHashA – If this parameter is not an Empty Buffer
18825 If arg3 is a TPM2B_NAME, then arg3.buffer will actually be an arg3.name.
18856 cpHash – this parameter may only be changed if it contains its initialization value (an Empty Strin…
18858 an error (TPM_RC_CPHASH) if the current and update values are not the same.
18864 not an error condition.
18869 TPM2_PolicyRestart(). If a policy command tries to change this to a different value, an error is
18975 reference. The timeout parameter is an absolute time, using TPM Clock as the reference.
19029 Each signature and key combination indicates the scheme and each scheme has an
19047 an EmptyAuth if the authorization is not limited to a specific
19057 an opaque value determined by the authorizing entity. Set to the
19060 The computation for an aHash if there are no restrictions is:
19063 which is the hash of an expiration time of zero.
19093 If the cpHashA parameter is not an Empty Buffer, it is copied to policySession→cpHash.
19496 hash of an opaque value determined by the authorizing
19624 secret value using an authorization session using the authValue associated with authHandle. A
19625 password session, an HMAC session, or a policy session containing TPM2_PolicyAuthValue() or
19629 The secret is the authValue of authObject, which may be any TPM entity with a handle and an associa…
19646 If the cpHashA command parameter is not an Empty Buffer, it is copied to cpHash in the session cont…
19652 If an HMAC is used to convey the authorization, a separate session is needed for the authorization.
19698 handle for an entity providing the authorization
20028 authorization. The ticket represents a validated authorization that had an expiration time associat…
20042 If the cpHashA command parameter is not an Empty Buffer, it may be copied to cpHash in the session
20123 an authorization ticket returned by the TPM in response
20380 The TPM makes no check to see if the size of an entry matches the size of the digest of the
20668 validity of the settings will not be determined until an attempt is made to use the policy for
20895 // match the current PCR settings, return an error..
20993 If locality has a value greater than 31, then an extended locality is indicated. For an extended lo…
20996 When locality is not an extended locality, the TPM will validate that the policySession→commandLoca…
20997 is not set or is not set to an extended locality value (TPM_RC_RANGE). If not the TPM will disable …
21191 // Its an error if the locality parameter is zero
21205 // The previous setting must not be an extended locality
21325 This command is used to cause conditional gating of a policy based on the contents of an NV Index.
21390 When an Index is written, it has a different authorization name than an Index that has not been
22499 If the TPM does not return an error, it will update policySession→policyDigest by
22508 expression is improperly formed but the TPM does not return an error.
22512 A TPM2_PolicyOR() would be used to allow an authorization to be used for multiple commands.
22922 TPM2_PolicySigned(), TPM2_PolicySecret(), and TPM2_PolicyTIcket() are designed to allow an
22923 authorizing entity to execute an arbitrary command as the cpHashA parameter of those commands is not
22926 command allows the policy to be restricted such that an entity may only authorize a command with a
23462 When an object is created when the list of allowed duplication targets is known, the policy would be
23475 If the authorizing entity for an TPM2_PolicyAuthorize() only specifies the new parent, then that
23799 policy. This command lets a policy authority sign a new policy so that it may be used in an existin…
23816 and it is more efficient to check a ticket than to load an object each time to chec k a signature.
24159 use sessionKey. If sessionKey is not present, then the hmacKey is an Empty Buffer and no HMAC
24357 TPM2_PolicyPassword() is part of the sequence, then the field will contain a password and not an
24368 done using either an HMAC or a password with no change to the authPolicy of the object. The
24370 will contain an HMAC or a password value.
24555 to perform the actions required to pre-compute the authPolicy for an object.
24827 Make an NV Index policy dependent on the state of the TPMA_NV_WRITTEN attribute of the index.
24906 // is a conflicting setting, it is an error
24987 The TPM will derive the object from the Primary Seed indicated in primaryHandle using an approved
25164 sensitiveDataOrigin is CLEAR when 'sensitive. data' is an Empty
25169 for an asymmetric key; attempt to create a symmetric cipher key that
25384 long as shEnable is CLEAR, the TPM will return an error in response to any command that attempts to
25385 operate upon an NV index that has TPMA_NV_PLATFORMCREATE CLEAR.
25388 As long as phEnableNV is CLEAR, the TPM will return an error in response to any command that
25389 attempts to operate upon an NV index that has TPMA_NV_PLATFORMCREATE SET.
25750 The command requires an authorization session. The session shall use the current authValue or satis…
25804 an authorization policy digest; may be the Empty Buffer
25805 If hashAlg is TPM_ALG_NULL, then this shall be an
25813 If the authPolicy is an Empty Buffer, then this field shall
26224 ehProof can be generated on an as-needed basis or made a non-volatile value.
26455 computation shall use the SPS as an HMAC key and the derived value may then be a parameter
26656 // If Clear command is disabled, return an error
27202 A TPM is required to have support for logic that will help prevent a dictionary attack on an author…
27203 value. The protection is provided by a counter that increments when a password authorization or an
27206 TPM is in Lockout mode, the TPM will return TPM_RC_LOCKED if the command requires use of an
27207 object’s or Index’s authValue unless the authorization applies to an entry in the Platform hierarch…
27221 Dictionary attack protection does not apply to an entity associated with a permanent handle (handle…
27621 asserted for either an HMAC or a Policy authorization.
27836 modification of the unmarshaling code so that each time an algorithm is unmarshaled, it would be
28001 If an algorithm is found to be flawed, a patch of that algorithm might be installed using the firmw…
28007 If an additional set of ECC parameters is needed, the firmware process may be used to add the
28340 The TPM will validate that the digest of fuData matches an expected value. If so, the TPM may buffe…
28341 immediately apply the update. If the digest of fuData does not match an expected value, the TPM sha…
28495 to recover from an abandoned upgrade of this firmware.
28877 // handle of an object will be replaced, while the output handle
28990 // Fill in other return values for an object.
29117 // SaveContext may only take an object handle or a session handle.
29292 no free slot for an object
29514 // reformat the data into an internal format
29606 // Context blob may only have an object handle or a session handle.
29658 If the handle is for an authorization session and the handle does not reference a loaded or active …
29872 Before execution of TPM2_EvictControl code below, the TPM verifies that objectHandle references an
29883 3) the stClear is SET in the object or in an ancestor key.
29905 …s non volatile and not subject to endurance issues. In such case, there is no movement of an object
29938 revocation of an object by removing it from persistent memory.
30042 an object with temporary, stClear or publicOnly attribute SET cannot
30293 these values. Since they are not signed and cannot be accessed in a command that uses an
30594 // Check to see if the update has caused a need for an nvClock update
30996 TPM_CAP_ALGS – Returns a list of TPMS_ALG_PROPERTIES. Each entry is an algorithm ID and a
31070 If the propertyCount selects an unimplemented property, the next higher implemented property
31208 value of property is in an unsupported handle range for the
31648 Before an Index may be used, it must be defined (TPM2_NV_DefineSpace()).
31651 An Index may have an Index-specific authValue and authPolicy. The authValue may be used to authorize
31659 If an operation on an NV index requires authorization, and the authHandle parameter is the handle o…
31667 For creating an Index, ownerAuth may not be used if shEnable is CLEAR and platformAuth may not be
31669 If an Index was defined using platformAuth, then that Index is not accessible when phEnableNV is
31670 CLEAR. If an Index was defined using ownerAuth, then that Index is not accessible when shEnable is
31676 If an Index has been defined and not written, then any operation on the NV Index that requires read
31689 The code in the “Detailed Actions” clause of each command is written to interface with an implement…
31694 This means that, if authHandle references an NV Index, then nvIndex will have the same value.
31715 When an Index has the TPMA_NV_COUNTER attribute set, it behaves as a monotonic counter and may
31717 When an NV counter is created, the TPM shall initialize the 8-octet counter value with a number tha…
31721 goes through an orderly shutdown process. The TPM may update the counter value in RAM and
31725 Before an NV counter can be used, the TPM shall validate that the count is not less than a previous…
31726 reported value. If the TPMA_NV_ORDERLY attribute is not SET, or if the TPM experienced an orderly
31767 This command defines the attributes of an NV Index and causes the TPM to reserve space to hold the
31790 If the NV Index is an ordinary Index and publicInfo→dataSize is larger than supported by the TPM
31795 has TPMA_NV_ORDERLY SET, then the maximum size of an ordin ary NV Index may be less than
31796 the size of an ordinary NV Index that has TPMA_NV_ORDERLY CLEAR.
31864 In some implementations, an NV Index with the TPMA_NV_COUNTER attribute may require special TPM
32059 // If an index is being created by the owner and shEnable is
32328 This command removes an Index from the TPM.
32330 If nvIndex references an Index that has its TPMA_NV_PLATFORMCREATE attribute SET, the TPM shall
32475 attempt to use ownerAuth to delete an index created by the platform
32499 // This command can't be used to delete an index with TPMA_NV_POLICY_DELETE SET
32502 // The owner may only delete an index that was defined with ownerAuth. The
32503 // platform may delete an index that was created with either auth.
32537 … is for this command, and not a policy that would approve another use. That is, authority to use an
32543 an
32746 This command is used to read the public area and Name of an NV Index. The public area of an Index is
32910 This command writes a value to an area in NV memory that was previously defined by
33151 // attribute if it has not already been SET. If NV isn't available, an error
33192 This command is used to increment the value in an NV Index that has TPMA_NV_COUNTER SET. The
33196 The NV Index counter is an unsigned value.
33231 If a TPM implements TPMA_NV_ORDERLY and an Index is defined with TPMA_NV_ORDERLY and
33435 // If this is an orderly counter that just rolled over, need to be able to
33445 // Need to force an NV update
33495 This command extends a value to an area in NV memory that was previously defined by
33731 // Make sure that this is an extend index
33827 This command is used to SET bits in an NV Index that was created as a bit field. Any number of bits…
34102 If the TPMA_NV_WRITEDEFINE or TPMA_NV_WRITE_STCLEAR attributes of an NV location are SET,
34106 It is not an error if TPMA_NV_WRITELOCKED for the NV Index is already SET.
34370 If an Index has both TPMA_NV_WRITELOCKED and TPMA_NV_WRITEDEFINE SET, then this
34374 If an Index is defined with TPMA_NV_GLOBALLOCK SET, then the global lock does not apply until
34543 an
34803 If TPMA_NV_READ_STCLEAR is SET in an Index, then this command may be used to prevent further
34809 Only an entity that may read an Index is allowed to lock the NV Index for read.
34815 It is not an error to use this command for an Index that is already locked for reading.
35010 // It is not an error to read lock an uninitialized Index.
35043 This command allows the authorization secret for an NV Index to be changed.
35249 The purpose of this command is to certify the contents of an NV Index or portion of an NV Index.
35251 and offset are included in an attestation block and signed using the key indicated by signHandle. T…
35480 inScheme is not an allowed value for the key definition