| Previous | Next |
| TPM_E_INAPPROPRIATE_SIG | TPM_E_BAD_MIGRATION |
TPM_E_BAD_KEY_PROPERTY
The state machine behind the code
TPM_E_BAD_KEY_PROPERTY (0x80280028) belongs to TPM 1.2 command processing. The base What Is page already shows the short Windows message; the additional diagnostic value is that this result marks the requested TPM 1.2 key template combines algorithm, size, flags or parameters that this TPM does not support.
The first producer to identify for this HRESULT is the TPM 1.2 command decoder and state machine. TPM 1.2 is a command/response device with strict binary structures and stateful resources. Windows may present the device response as an HRESULT, but the diagnostic meaning still belongs to the command field, key, session, PCR, NV index or lifecycle check named by the TPM specification.
The result value 0x80280028 should remain attached to the symbolic name. Some this result logs store the value as a negative signed integer; others expose only a generic CNG, WMI, BitLocker or enrollment message. Neither substitution identifies the requested TPM 1.2 key template combines algorithm, size, flags or parameters that this TPM does not support as precisely as it.
Evidence table
- Producer for this HRESULT: the TPM 1.2 command decoder and state machine.
- Rejected invariant: the requested TPM 1.2 key template combines algorithm, size, flags or parameters that this TPM does not support.
- Decisive capture: TPM_KEY_PARMS, keyUsage, keyFlags, algorithm ID, key length, exponent, schemes, and capability results from the same device.
- Safe comparison: reduce the template to a known-supported key profile and add one requested property at a time.
Reproduction plan
Build the result minimal case around the original command contract. Use a disposable object when the request can write NV data, advance a counter, change authorization state or consume a lock transition. The comparison is valid only when the caller, TPM generation and security policy remain the same.
| Question | Evidence for this HRESULT |
|---|---|
| What exact state was rejected? | the requested TPM 1.2 key template combines algorithm, size, flags or parameters that this TPM does not support |
| Which layer owns the result? | The TPM 1.2 command decoder and state machine. |
| What must be correlated? | TPM_KEY_PARMS, keyUsage, keyFlags, algorithm ID, key length, exponent, schemes, and capability results from the same device |
| What is the controlled comparison? | reduce the template to a known-supported key profile and add one requested property at a time |
Contrast with neighboring results
| Constant | Checkpoint represented by its standard message |
|---|---|
TPM_E_BAD_SCHEME | The signature or encryption scheme for this key is incorrect or not permitted in this situation — a separate checkpoint when compared with this result. |
TPM_E_INAPPROPRIATE_SIG | Signed data cannot include additional DER information — a separate checkpoint when compared with this result. |
TPM_E_BAD_DATASIZE | The size of the data (or blob) parameter is bad or inconsistent with the referenced key — a separate checkpoint when compared with it. |
The codes above may appear in the same workflow, but they are not aliases. TPM_E_INVALID_KEYUSAGE concerns the operation on an otherwise recognized key; this code rejects the key template itself.
Confirming remediation
Choose a template advertised by the tpm and application scenario instead of cloning parameters from another vendor or tpm generation. Do not clear ownership, delete keys or reset PCR-related state merely to see whether the message disappears; those actions can destroy the evidence and protected material while leaving serialization or command-order defects unchanged.
Proof for this HRESULT consists of a successful replay plus validation of the intended key, PCR, NV, context, event-log, provider or service result. A software fallback or a newly provisioned blank TPM answers a different question than it.
Source material
- TCG: TPM 1.2 Main Specification — source for the checkpoint.
- TCG: TPM 1.2 Part 2 — Structures — source for the checkpoint.
- TCG: TPM 1.2 Part 3 — Commands — source for the checkpoint.
- Microsoft: TPM Base Services portal — source for the checkpoint.
Looking for a different code? Search another status or error code.
