What does HRESULT 0x80091006 (CRYPT_E_AUTH_ATTR_MISSING) mean?

 
Previous Next
CRYPT_E_UNEXPECTED_ENCODING CRYPT_E_HASH_VALUE

CRYPT_E_AUTH_ATTR_MISSING

The signed message lacks an authenticated attribute that the caller expected. This is a message-profile or verification-policy problem, not proof that every certificate in the chain is invalid.

What to check for CRYPT_E_AUTH_ATTR_MISSING

  • Identify the exact authenticated attribute required by the application or protocol.
  • Inspect the signer information and distinguish a missing attribute from an invalid signature or untrusted signer.
  • Make the sender produce the required signed attribute instead of accepting an unsigned substitute.

Microsoft: CryptVerifyMessageSignature

Microsoft: CryptMsgGetParam

Diagnostic interpretation of CRYPT_E_AUTH_ATTR_MISSING

CRYPT_E_AUTH_ATTR_MISSING has the HRESULT value 0x80091006. AllStat records the condition as “The cryptographic message does not contain an expected authenticated attribute.”. For CRYPT_E_AUTH_ATTR_MISSING, in practice, interpret that wording at the boundary owned by cryptography, certificate, trust, or key-provider processing, rather than treating the value as a generic Windows message.

Evidence to capture for CRYPT_E_AUTH_ATTR_MISSING

  • Record the exact COM method or Windows API, its input object, the calling thread, and the full 0x80091006 value before a wrapper converts it to an exception or Boolean result.
  • Capture any IErrorInfo text, activity identifier, event-log entry, and subsystem trace that mentions CRYPT_E_AUTH_ATTR_MISSING or the crypt / auth / attr / missing operation.
  • For CRYPT_E_AUTH_ATTR_MISSING, check the documented return contract of the specific API because the same HRESULT can require different recovery in different interfaces.

Retry and recovery for CRYPT_E_AUTH_ATTR_MISSING

Retry CRYPT_E_AUTH_ATTR_MISSING only when the owning API documents a transient state or after the condition described as “The cryptographic message does not contain an expected authenticated attribute.” has changed. For CRYPT_E_AUTH_ATTR_MISSING, configuration, policy, format, and authorization failures normally require correction first; an immediate loop can hide the original call site and add secondary errors.


Looking for a different code? Search another status or error code.