Two synthetic-cache staleness gaps let getKeyEntry replay a pre-mutation
attestation:
- importKey now drops teeResponses and patchedChains for the alias, not
only generatedKeys. A successful import replaces the real key, so the
retained patched chain was a tell (duck STALE_GENERATED_AFTER_IMPORT).
- After updateSubcomponent re-keys a patched chain, getKeyEntry on a
patch-mode key evicts the cached TEE response by KEY_ID or APP so the
read falls through to the updated real keystore2
(duck STALE_TEE_RESPONSE_AFTER_KEY_ID_UPDATE).
Refs Phase 9 .omc/plans/tee-fingerprint-phase-9-grant-plane-coherence.md