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
3848 is larget than the digest size of the nameAlg of tpmKey; or, for an
3885 // If an decrypt key is passed in, check its validation
4184 This command is used to create an object that can be loaded into a TPM using TPM2_Load(). If the
4195 structure (inPublic), an initial value for the object’s authValue (inSensitive.authValue), and, if …
4196 a symmetric object, an optional initial data value (inSensitive.data). The TPM shall validate the
4203 The sensitiveDataOrigin attribute of inPublic shall be SET if inSensitive.data is an Empty Buffer a…
4204 CLEAR if inSensitive.data is not an Empty Buffer or the TPM shall return TPM_RC_ATTRIBUTES.
4225 b) If the Object is an asymmetric key:
4247 5) If the key is an ECC key and the scheme required by the curveID is not the same as scheme in
4249 6) If the key is an ECC key and the KDF required by the curveID is not the same as kdf in the pubic
4253 There is currently no command in which the caller may specify the KDF to be used with an
4259 1) If inSensitive.data is an Empty Buffer, and neither sign nor decrypt is SET in inPublic.attribut…
4261 2) If inSensitive.data is not an Empty Buffer, the TPM will copy the inSensitive.data to
4278 3) If inSensitive.data is an Empty Buffer, a TPM-generated key value that is the size of the digest
4457 sensitiveDataOrigin is CLEAR when 'sensitive. data' is an Empty
4462 for an asymmetric key; attempt to create a symmetric cipher key that
4476 invalid key size values in an asymmetric key public area
4486 FOr() an RSA key, the exponent value is not supported.
4515 parameters for an RSA key; unsupported name algorithm for an ECC
4704 Loading an object is not the same as restoring a saved object context.
4737 properly linked, cryptographically. Use of an object includes use in any policy command. If the par…
4752 For an ECC key, the public point shall be f(x) where x is the private key.
5104 This command is used to load an object that is not a Protected Object into the TPM. The command all…
5108 Typical use for loading a public area is to allow the TPM to validate an asymmetric signature.
5117 If both the public and private portions of an object are loaded, the object is not allowed to appea…
5137 an object with no Name is computed, no Name value is included in the HMAC. To ensure that these
5138 unnamed entities are not substituted, they should have an authValue that is statistically unique.
5149 For an ECC object, the TPM will verify that the public key is on the curve of the key before the pu…
5156 Consistency checks are necessary because an object with a Name needs to have the public and
5157 sensitive portions cryptographically bound so that an attacker cannot mix pubic and sensitive areas.
5302 'fixedParent" and fixedTPM must be CLEAR on on an external key if
5316 loading public and private parts of an object
5329 if there is no free slot for an object
5411 // For loading an object with both public and sensitive
5560 TPM handle of an object
5588 structure containing the public area of an object
5715 This command enables the association of a credential with an object in a way that ensures that the …
5853 secret is invalid (when keyHandle is an ECC key)
5857 secret is invalid (when keyHandle is an ECC key)
5865 secret is invalid (when keyHandle is an ECC key)
5874 keyHandle does not reference an asymmetric key.
5918 secret is invalid (when keyHandle is an RSA key)
5954 // input decrypt key must be an asymmetric, restricted decryption key
6032 TPM2B_ID_OBJECT containing an activation credential.
6151 handle referenced an ECC key that has a unique field that is not a
6206 handle does not reference an asymmetric decryption key
6235 // input key must be an asymmetric, restricted decryption key
6482 This command may not be used to change the authorization value for an NV Index or a Primary Object.
6485 If an NV Index is to have a new authorization, it is done with TPM2_NV_ChangeAuth().
6770 to use an object does not grant authority to duplicate the object.
6859 shall reference the public area of an asymmetric key
6903 If the caller provided an encryption key or if
7057 // an inner wrapper and the new parent may not be TPM_RH_NULL
7196 use of the oldParent is provided, then an HMAC key and a symmetric key are recovered from inSymSeed
7259 an object encrypted using symmetric key derived from
7310 an object encrypted using symmetric key derived from
7348 for an ECC key, the public key is not on the curve of the curve ID
7361 for an 'oldParent; RSA key, the data to be decrypted is greater than
7629 This command allows an object to be encrypted using the symmetric encryption values of a Storage Ke…
7646 TPM_RC_ATTRIBUTES if inSymSeed is an empty buffer.
7678 not validated by this command, the binding must be checked each time the object is loaded. For an
7681 loaded, or before the TPM performs an operation for which the binding affects the outcome of the
7686 versions) on which the new parent exists. This means that, each time an object is loaded under a
7788 contain an inner symmetric wrapper
7904 invalid key size in objectPublic representing an asymmetric key
8085 // See if there is an outer wrapper
8227 implemented in the TPM. Many of these commands are only allowed if the asymmetric key is an
8238 The key referenced by keyHandle is required to be an RSA key (TPM_RC_KEY) with the decrypt attribute
8251 3) TPM_ALG_NULL – Data is not padded by the TPM and the TPM will treat message as an
8333 consistency of the attributes. The only property checking is that the key is an RSA key and that the
8510 keyHandle does not reference an RSA key
8595 // selected key must be an RSA key
8667 The key referenced by keyHandle shall be an RSA key (TPM_RC_KEY) with restricted CLEAR and
8673 returned with the padding removed. If no padding is used, the returned value is an unsigned integer…
8813 keyHandle does not reference an unrestricted decrypt key
8902 // The selected key must be an RSA key
8905 // The selected key must be an unrestricted decryption key
8993 This command uses the TPM to generate an ephemeral key pair (de, Qe where Qe ≔ [de]G). It uses the …
9454 This command returns the parameters of an ECC curve identified by its TCG-assigned curveID.
9582 TPM2_EC_Ephemeral(). TPM2_EC_Ephemeral() generates an ephemeral key and returns the public
9585 The input parameters for this command are a static public key (inQsU), an ephemeral key (inQeU) from
9592 It is an error if inQsB or inQeB are not on the curve of keyA (TPM_RC_ECC_POINT).
9593 The two-phase key schemes that were assigned an algorithm ID as of the time of the publication of t…
9622 For TPM_ALG_ECMQV or TPM_ALG_SM2 outZ1 will be Z and outZ2 will be an Empty Point.
9629 MQV (including SM2), outZ1 will contain the computed value and outZ2 will be an Empty Point.
9632 The Z values returned by the TPM are a full point and not ju st an x-coordinate.
9634 …utation of either Z produces the point at infinity, then the corresponding Z value will be an Empty
9674 handle of an unrestricted decryption key ECC
9777 key referenced by keyA is not an ECC key
9856 // keyA must be an ECC key
9969 Some of the symmetric encryption/decryption modes use an IV. When an IV is used, it may be an
10007 All the bits of the IV are incremented as if it were an unsigned integer.
10022 next block. The last ciphertext block then is used as an IV for the next buffer.
10027 inData is required to be an even multiple of the block encrypted by the selected algorithm
10033 Similar to CBC in that the last ciphertext block is an input to the encryption of the next block.
10045 inData is required to be an even multiple of the block encrypted by the selected algorithm
10070 (TPM_RC_VALUE). For an unrestricted key, mode may be the same or different from the mode of the key
10138 an initial value as required by the algorithm
10207 not an even multiple of the block size for CBC or ECB mode
10311 // have an iv size same as encryption block size
10376 // The input data size of CBC mode or ECB mode must be an even multiple of
10668 This command performs an HMAC on the supplied data using the indicated hash algorithm.
10796 key referenced by handle is not an HMAC key
10882 // Make sure that the key is an HMAC signing key
10971 an infrequent occurrence.
11262 All of the commands in this group are to support sequences for which an intermediate state must be
11269 This command starts an HMAC sequence. The TPM will create and initialize an HMAC sequence
11419 handle of an HMAC key
11488 no space to create an internal object
11492 key referenced by handle is not an HMAC key
11573 // Make sure that the key is an HMAC signing key
11647 This command starts a hash or an Event sequence. If hashAlg is an implemented hash, then a hash
11648 sequence is started. If hashAlg is TPM_ALG_NULL, then an Event sequence is started. If hashAlg is
11649 neither an implemented algorithm nor TPM_ALG_NULL, then the TPM shall return TPM_RC_HASH.
11650 Depending on hashAlg, the TPM will create and initialize a hash sequence structure or an Event
11652 sequence to the value in auth. A sequence structure for an Event (hashAlg = TPM_ALG_NULL) contains
11771 no space to create an internal object
11820 Proper authorization for the sequence object associated with sequenceHandle is required. If an
11821 authorization or audit of this command requires computation of a cpHash and an rpHash, the Name
12093 This command is not used to complete an Event sequence. TPM2_EventSequenceComplete() is
12106 If sequenceHandle references an Event sequence, then the TPM shall return TPM_RC_MODE.
12107 Proper authorization for the sequence object associated with sequenceHandle is required. If an
12108 authorization or audit of this command requires computation of a cpHash and an rpHash, the Name
12445 This command adds the last part of data, if any, to an Event sequence and returns the result in a d…
12450 Proper authorization for the sequence object associated with sequenceHandle is required. If an
12451 authorization or audit of this command requires computation of a cpHash and an rpHash, the Name
12646 // input handle must reference an event sequence object
12655 // if an extend is going to take place, then check to see if there has
12656 // been an orderly shutdown. If so, and the selected PCR is one of the
12662 // check to see if there was an orderly shutdown and not do anything if
12754 The attestation commands cause the TPM to sign an internally generated data structure. The contents…
12764 an ECC key). If the caller sets scheme to TPM_ALG_NULL, then the default scheme of the key is used.
12770 might be in an attestation structure.
12778 TPM2_NV_Certify() is an attestation command that is documented in 1. The remaining attestation
12803 If the signing scheme of signHandle is an anonymous scheme, then the attestation blocks will not co…
12842 The purpose of this command is to prove that an object with a specific Name is loaded in the TPM. By
12852 use. That is, authority to use an object does not grant authority to certify the object.
13046 small (for an RSA key); invalid commit status (for an ECC key with a
13162 This command is used to prove the association between an object and its creation data. The TPM will
13381 small (for an RSA key); invalid commit status (for an ECC key with a
13835 If sessionHandle is not an audit session, the TPM shall return TPM_RC_TYPE.
13838 A session does not become an audit session until the successful completion of the command in
13839 which the session is first used as an audit session.
13996 sessionHandle does not reference an audit session
14045 signHandle (for an RSA key); invalid commit status or failed to
14046 generate r value (for an ECC key)
14073 // session must be an audit session
14180 audited, and the audit hash algorithm. These values are placed in an attestation structure and sign…
14379 signHandle (for an RSA key); invalid commit status or failed to
14380 generate r value (for an ECC key)
14531 The purpose of this duplication is to allow an entity who is trusted by the privacy Administrator to
14716 signHandle (for an RSA key); invalid commit status or failed to
14717 generate r value (for an ECC key)
14833 command in which they are created. Examples of this use are TPM2_Duplicate() where an ephemeral
14837 For these uses, TPM2_Commit() or TPM2_EC_Ephemeral() may be used to have the TPM create an
14841 When an ephemeral EC key is created, it is assigned a number and that number is returned to the cal…
14859 usage. When a counter value is used to create a key, a bit in an array may be set to indicate that …
14885 TPM2_Commit() performs the first part of an ECC anonymous signing operation. The TPM will perform
14887 parameter shall refer to an ECC key with the sign attribute (TPM_RC_ATTRIBUTES) using an
14889 For this command, p1, s2 and y2 are optional parameters. If s2 is an Empty Buffer, then the TPM sha…
14890 return TPM_RC_SIZE if y2 is not an Empty Buffer. If p1, s2, and y2 are all Empty Buffers, the TPM s…
14929 b) if s2 is not an Empty Buffer, compute x2 ≔ HnameAlg (s2) mod p, else skip to step (e)
14941 g) if p1 is an Empty Buffer, skip to step i)
14949 if K is not an Empty Buffer, set L ≔ [r] (x2, y2)
14977 Depending on the input parameters K and L may be Empty Buffers or E may be an Empty Buffer
15123 keyHandle does not reference an ECC key
15213 // Input key must be an ECC key
15216 // if the key is restricted, it must be a signing key using an anonymous scheme
15227 // if not restricted, s2, and y2 must be an Empty Buffer
15359 // NOTE: an "empty" point has two UINT16 values which are the size values
15456 TPM2_EC_Ephemeral() creates an ephemeral key for use in a two-phase key exchange protocol.
15457 The TPM will use the commit mechanism to assign an ephemeral key r and compute a public point Q ≔
15648 If keyHandle references an asymmetric key, only the public portion of the key needs to be loaded. If
15923 This command causes the TPM to sign an externally provided hash with the specified asymmetric signi…
15927 Symmetric “signing” is done with an HMAC.
15948 If the scheme of keyHandle is an anonymous scheme, then inScheme shall have the same scheme
16172 // the default scheme, return an error.
16282 Because the audit digest is cleared, the audit counter will increment the next time that an audited
16285 Use of TPM2_SetCommandCodeAuditStatus() to change the list of audited commands is an audited
16294 the commands in clearList indicate the commands that will no longer be audited. It is not an error …
16295 command in setList is already audited or is not implemented. It is not an error if a command in cle…
16563 In TPM 1.2, an Event was hashed using SHA-1 and then the 20-octet digest was extended to a PCR
16573 To support recording of an Event that is larger than the TPM input buffer, the caller may use the
16575 Change to a PCR requires authorization. The authorization may be with either an authorization value…
16576 an authorization policy. The platform-specific specifications determine which PCR may be controlled…
16581 TPM_ALG_NULL, then no policy is present and the authorization requires an EmptyAuth.
16618 This command is used to cause an update to the indicated PCR. The digests parameter contains one or
16619 more tagged digest value identified by an algorithm ID. For each digest, the PCR associated with
16867 data left over. In either case, it will cause an unmarshaling error and this
16913 This command is used to cause an update to the indicated PCR.
16916 references an implemented PCR and not TPM_ALG_NULL, digests list is processed as in
16918 A TPM shall support an Event.size of zero through 1,024 inclusive (Event.size is an octet count). An
16922 If the command implements PCR[2] in a SHA1 bank and a SHA256 bank, then an extend to PCR[2]
17529 // an implementation choice to check in this routine rather than in a common
17577 It is expected that the typical default will be with the policy hash set to TPM_ALG_NULL and an
17578 Empty Buffer for the authPolicy value. This will allow an EmptyAuth to be used as the authorization
17800 specification as allowing an authorization value. If the TPM implementation does not allow an
17846 handle for a PCR that may have an authorization value
17954 // If PCR does not belong to an auth group, return TPM_RC_VALUE
18184 Measurement (D-CRTM) measurement sequence. On receipt of this indication, the TPM will initialize an
18186 …ject memory is available for creation of the sequence context, the TPM will flush the context of an
18191 …this indication occurs after TPM2_Startup(), it is the responsibility of software to ensure that an
18192 object context slot is available or to deal with the consequences of having the TPM select an
18277 // Create an event sequence object and store the handle in global
18288 // a handle that is assigned an free it for the DRTM sequence.
18305 // Try to create an event sequence object again. This time, we must
18480 a platform-specific specification excludes modifications of PCR[DRTM] from causing an increment.
18481 A platform-specific specification may allow an H-CRTM Event Sequence before TPM2_Startup(). If so,
18605 // Complete hash and extend PCR, or if this is an HCRTM, complete
18677 authorizations required to use an object have been provided. Many of the commands will also modify
18695 Unless there is an unmarshaling error in the parameters of the command, these commands will
18748 d) cpHashA – If this parameter is not an Empty Buffer
18836 If arg3 is a TPM2B_NAME, then arg3.buffer will actually be an arg3.name.
18867 cpHash – this parameter may only be changed if it contains its initialization value (an Empty Strin…
18869 an error (TPM_RC_CPHASH) if the current and update values are not the same.
18875 not an error condition.
18880 TPM2_PolicyRestart(). If a policy command tries to change this to a different value, an error is
18986 reference. The timeout parameter is an absolute time, using TPM Clock as the reference.
19040 Each signature and key combination indicates the scheme and each scheme has an
19058 an EmptyAuth if the authorization is not limited to a specific
19068 an opaque value determined by the authorizing entity. Set to the
19071 The computation for an aHash if there are no restrictions is:
19074 which is the hash of an expiration time of zero.
19104 If the cpHashA parameter is not an Empty Buffer, it is copied to policySession→cpHash.
19507 hash of an opaque value determined by the authorizing
19635 secret value using an authorization session using the authValue associated with authHandle. A
19636 password session, an HMAC session, or a policy session containing TPM2_PolicyAuthValue() or
19640 The secret is the authValue of authObject, which may be any TPM entity with a handle and an associa…
19657 If the cpHashA command parameter is not an Empty Buffer, it is copied to cpHash in the session cont…
19663 If an HMAC is used to convey the authorization, a separate session is needed for the authorization.
19709 handle for an entity providing the authorization
20039 authorization. The ticket represents a validated authorization that had an expiration time associat…
20053 If the cpHashA command parameter is not an Empty Buffer, it may be copied to cpHash in the session
20134 an authorization ticket returned by the TPM in response
20391 The TPM makes no check to see if the size of an entry matches the size of the digest of the
20679 validity of the settings will not be determined until an attempt is made to use the policy for
20906 // match the current PCR settings, return an error..
21004 If locality has a value greater than 31, then an extended locality is indicated. For an extended lo…
21007 When locality is not an extended locality, the TPM will validate that the policySession→commandLoca…
21008 is not set or is not set to an extended locality value (TPM_RC_RANGE). If not the TPM will disable …
21202 // Its an error if the locality parameter is zero
21216 // The previous setting must not be an extended locality
21336 This command is used to cause conditional gating of a policy based on the contents of an NV Index.
21401 When an Index is written, it has a different authorization name than an Index that has not been
22510 If the TPM does not return an error, it will update policySession→policyDigest by
22519 expression is improperly formed but the TPM does not return an error.
22523 A TPM2_PolicyOR() would be used to allow an authorization to be used for multiple commands.
22933 TPM2_PolicySigned(), TPM2_PolicySecret(), and TPM2_PolicyTIcket() are designed to allow an
22934 authorizing entity to execute an arbitrary command as the cpHashA parameter of those commands is not
22937 command allows the policy to be restricted such that an entity may only authorize a command with a
23473 When an object is created when the list of allowed duplication targets is known, the policy would be
23486 If the authorizing entity for an TPM2_PolicyAuthorize() only specifies the new parent, then that
23810 policy. This command lets a policy authority sign a new policy so that it may be used in an existin…
23827 and it is more efficient to check a ticket than to load an object each time to chec k a signature.
24170 use sessionKey. If sessionKey is not present, then the hmacKey is an Empty Buffer and no HMAC
24368 TPM2_PolicyPassword() is part of the sequence, then the field will contain a password and not an
24379 done using either an HMAC or a password with no change to the authPolicy of the object. The
24381 will contain an HMAC or a password value.
24566 to perform the actions required to pre-compute the authPolicy for an object.
24838 Make an NV Index policy dependent on the state of the TPMA_NV_WRITTEN attribute of the index.
24917 // is a conflicting setting, it is an error
24998 The TPM will derive the object from the Primary Seed indicated in primaryHandle using an approved
25175 sensitiveDataOrigin is CLEAR when 'sensitive. data' is an Empty
25180 for an asymmetric key; attempt to create a symmetric cipher key that
25395 long as shEnable is CLEAR, the TPM will return an error in response to any command that attempts to
25396 operate upon an NV index that has TPMA_NV_PLATFORMCREATE CLEAR.
25399 As long as phEnableNV is CLEAR, the TPM will return an error in response to any command that
25400 attempts to operate upon an NV index that has TPMA_NV_PLATFORMCREATE SET.
25761 The command requires an authorization session. The session shall use the current authValue or satis…
25815 an authorization policy digest; may be the Empty Buffer
25816 If hashAlg is TPM_ALG_NULL, then this shall be an
25824 If the authPolicy is an Empty Buffer, then this field shall
26235 ehProof can be generated on an as-needed basis or made a non-volatile value.
26466 computation shall use the SPS as an HMAC key and the derived value may then be a parameter
26667 // If Clear command is disabled, return an error
27213 A TPM is required to have support for logic that will help prevent a dictionary attack on an author…
27214 value. The protection is provided by a counter that increments when a password authorization or an
27217 TPM is in Lockout mode, the TPM will return TPM_RC_LOCKED if the command requires use of an
27218 object’s or Index’s authValue unless the authorization applies to an entry in the Platform hierarch…
27232 Dictionary attack protection does not apply to an entity associated with a permanent handle (handle…
27632 asserted for either an HMAC or a Policy authorization.
27847 modification of the unmarshaling code so that each time an algorithm is unmarshaled, it would be
28012 If an algorithm is found to be flawed, a patch of that algorithm might be installed using the firmw…
28018 If an additional set of ECC parameters is needed, the firmware process may be used to add the
28351 The TPM will validate that the digest of fuData matches an expected value. If so, the TPM may buffe…
28352 immediately apply the update. If the digest of fuData does not match an expected value, the TPM sha…
28506 to recover from an abandoned upgrade of this firmware.
28888 // handle of an object will be replaced, while the output handle
29001 // Fill in other return values for an object.
29128 // SaveContext may only take an object handle or a session handle.
29303 no free slot for an object
29525 // reformat the data into an internal format
29617 // Context blob may only have an object handle or a session handle.
29669 If the handle is for an authorization session and the handle does not reference a loaded or active …
29883 Before execution of TPM2_EvictControl code below, the TPM verifies that objectHandle references an
29894 3) the stClear is SET in the object or in an ancestor key.
29916 …s non volatile and not subject to endurance issues. In such case, there is no movement of an object
29949 revocation of an object by removing it from persistent memory.
30053 an object with temporary, stClear or publicOnly attribute SET cannot
30304 these values. Since they are not signed and cannot be accessed in a command that uses an
30605 // Check to see if the update has caused a need for an nvClock update
31007 TPM_CAP_ALGS – Returns a list of TPMS_ALG_PROPERTIES. Each entry is an algorithm ID and a
31081 If the propertyCount selects an unimplemented property, the next higher implemented property
31219 value of property is in an unsupported handle range for the
31657 Before an Index may be used, it must be defined (TPM2_NV_DefineSpace()).
31660 An Index may have an Index-specific authValue and authPolicy. The authValue may be used to authorize
31668 If an operation on an NV index requires authorization, and the authHandle parameter is the handle o…
31676 For creating an Index, ownerAuth may not be used if shEnable is CLEAR and platformAuth may not be
31678 If an Index was defined using platformAuth, then that Index is not accessible when phEnableNV is
31679 CLEAR. If an Index was defined using ownerAuth, then that Index is not accessible when shEnable is
31685 If an Index has been defined and not written, then any operation on the NV Index that requires read
31698 The code in the “Detailed Actions” clause of each command is written to interface with an implement…
31703 This means that, if authHandle references an NV Index, then nvIndex will have the same value.
31724 When an Index has the TPMA_NV_COUNTER attribute set, it behaves as a monotonic counter and may
31726 When an NV counter is created, the TPM shall initialize the 8-octet counter value with a number tha…
31730 goes through an orderly shutdown process. The TPM may update the counter value in RAM and
31734 Before an NV counter can be used, the TPM shall validate that the count is not less than a previous…
31735 reported value. If the TPMA_NV_ORDERLY attribute is not SET, or if the TPM experienced an orderly
31776 This command defines the attributes of an NV Index and causes the TPM to reserve space to hold the
31799 If the NV Index is an ordinary Index and publicInfo→dataSize is larger than supported by the TPM
31804 has TPMA_NV_ORDERLY SET, then the maximum size of an ordin ary NV Index may be less than
31805 the size of an ordinary NV Index that has TPMA_NV_ORDERLY CLEAR.
31873 In some implementations, an NV Index with the TPMA_NV_COUNTER attribute may require special TPM
32068 // If an index is being created by the owner and shEnable is
32337 This command removes an Index from the TPM.
32339 If nvIndex references an Index that has its TPMA_NV_PLATFORMCREATE attribute SET, the TPM shall
32484 attempt to use ownerAuth to delete an index created by the platform
32508 // This command can't be used to delete an index with TPMA_NV_POLICY_DELETE SET
32511 // The owner may only delete an index that was defined with ownerAuth. The
32512 // platform may delete an index that was created with either auth.
32546 … is for this command, and not a policy that would approve another use. That is, authority to use an
32552 an
32755 This command is used to read the public area and Name of an NV Index. The public area of an Index is
32919 This command writes a value to an area in NV memory that was previously defined by
33160 // attribute if it has not already been SET. If NV isn't available, an error
33201 This command is used to increment the value in an NV Index that has TPMA_NV_COUNTER SET. The
33205 The NV Index counter is an unsigned value.
33240 If a TPM implements TPMA_NV_ORDERLY and an Index is defined with TPMA_NV_ORDERLY and
33444 // If this is an orderly counter that just rolled over, need to be able to
33454 // Need to force an NV update
33504 This command extends a value to an area in NV memory that was previously defined by
33740 // Make sure that this is an extend index
33836 This command is used to SET bits in an NV Index that was created as a bit field. Any number of bits…
34111 If the TPMA_NV_WRITEDEFINE or TPMA_NV_WRITE_STCLEAR attributes of an NV location are SET,
34115 It is not an error if TPMA_NV_WRITELOCKED for the NV Index is already SET.
34379 If an Index has both TPMA_NV_WRITELOCKED and TPMA_NV_WRITEDEFINE SET, then this
34383 If an Index is defined with TPMA_NV_GLOBALLOCK SET, then the global lock does not apply until
34552 an
34812 If TPMA_NV_READ_STCLEAR is SET in an Index, then this command may be used to prevent further
34818 Only an entity that may read an Index is allowed to lock the NV Index for read.
34824 It is not an error to use this command for an Index that is already locked for reading.
35019 // It is not an error to read lock an uninitialized Index.
35052 This command allows the authorization secret for an NV Index to be changed.
35258 The purpose of this command is to certify the contents of an NV Index or portion of an NV Index.
35260 and offset are included in an attestation block and signed using the key indicated by signHandle. T…
35489 inScheme is not an allowed value for the key definition