| Previous | Next |
| TPM_20_E_RANGE | TPM_20_E_NONCE |
TPM_20_E_AUTH_FAIL
This is the dictionary-attack-accounted authorization failure. The TPM reached the HMAC or password verification step for an object or NV index that is subject to DA protection and rejected the supplied proof. It is not a generic TPM transport error: the failed authorization can change the TPM failedTries state and eventually lead to lockout.
Why retrying blindly is unsafe
- The issue can be a wrong
authValue, but it can also be a stale HMAC caused by a different command code, handle name, nonce, session attribute or encrypted parameter. - DA protection applies when the object does not have
noDAset, or when an NV index does not haveTPMA_NV_NO_DAset. - Repeated failures can make later, correct authorizations fail with
TPM_20_E_LOCKOUT.
Evidence worth collecting
Record the TPM command code, authorized handle, session type, session attributes and the response before retrying. Preserve the public area or NV attributes that determine DA protection, but do not log secrets, HMAC values or plaintext authorization data. Compare this status with TPM_20_E_BAD_AUTH: that code is also an authorization failure, but does not have DA implications.
TCG: TPM authorization checks · tpm2_startauthsession · tpm2-tools authorization formats
Looking for a different code? Search another status or error code.
