What does HRESULT 0x80091002 (CRYPT_E_UNKNOWN_ALGO) mean?

 
Previous Next
CRYPT_E_MSG_ERROR CRYPT_E_OID_FORMAT

CRYPT_E_UNKNOWN_ALGO

The encoded CMS/PKCS#7 message names a cryptographic algorithm that the current CryptoAPI path does not recognize or support.

What to check for CRYPT_E_UNKNOWN_ALGO

  • Inspect the message algorithm identifier and object identifier (OID) before changing any system cryptography policy.
  • Confirm that the sender and recipient agree on the CMS message profile and supported algorithms.
  • Do not re-enable legacy algorithms merely to suppress the error; choose a supported algorithm or update the producing system.

Microsoft: CryptMsgOpenToDecode

Microsoft: CryptVerifyMessageSignature

Diagnostic interpretation of CRYPT_E_UNKNOWN_ALGO

CRYPT_E_UNKNOWN_ALGO has the HRESULT value 0x80091002. AllStat records the condition as “Unknown cryptographic algorithm.”. For CRYPT_E_UNKNOWN_ALGO, 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_UNKNOWN_ALGO

  • Record the exact COM method or Windows API, its input object, the calling thread, and the full 0x80091002 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_UNKNOWN_ALGO or the crypt / unknown / algo operation.
  • Preserve the first failure in the call chain; a later HRESULT can describe cleanup rather than the original crypt / unknown / algo condition.

Retry and recovery for CRYPT_E_UNKNOWN_ALGO

Retry CRYPT_E_UNKNOWN_ALGO only when the owning API documents a transient state or after the condition described as “Unknown cryptographic algorithm.” has changed. For CRYPT_E_UNKNOWN_ALGO, 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.