What does HRESULT 0x8009100A (CRYPT_E_NOT_DECRYPTED) mean?

 
Previous Next
CRYPT_E_ALREADY_DECRYPTED CRYPT_E_RECIPIENT_NOT_FOUND

CRYPT_E_NOT_DECRYPTED

The caller requested content or state that is available only after an enveloped message has been decrypted.

What to check for CRYPT_E_NOT_DECRYPTED

  • Confirm that the blob is an enveloped message and that decryption completed successfully before retrieving plaintext-dependent data.
  • Check that a suitable recipient certificate and private key were supplied to the decryption operation.
  • Keep decode, recipient selection, and decryption steps in the correct order.

Microsoft: CryptDecryptMessage

Microsoft: CRYPT_DECRYPT_MESSAGE_PARA

Diagnostic interpretation of CRYPT_E_NOT_DECRYPTED

CRYPT_E_NOT_DECRYPTED has the HRESULT value 0x8009100A. AllStat records the condition as “The content of the cryptographic message has not been decrypted yet.”. For CRYPT_E_NOT_DECRYPTED, 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_NOT_DECRYPTED

  • Record the exact COM method or Windows API, its input object, the calling thread, and the full 0x8009100A 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_NOT_DECRYPTED or the crypt / decrypted operation.
  • For CRYPT_E_NOT_DECRYPTED, compare the failing machine with a working one at the same configuration boundary: component version, policy, registration, identity, and target resource.

Retry and recovery for CRYPT_E_NOT_DECRYPTED

Retry CRYPT_E_NOT_DECRYPTED only when the owning API documents a transient state or after the condition described as “The content of the cryptographic message has not been decrypted yet.” has changed. For CRYPT_E_NOT_DECRYPTED, 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.