What does HRESULT 0x80090012 (NTE_DOUBLE_ENCRYPT) mean?

 
Previous Next
NTE_NOT_FOUND NTE_BAD_PROVIDER

NTE_DOUBLE_ENCRYPT

What NTE_DOUBLE_ENCRYPT means

NTE_DOUBLE_ENCRYPT (0x80090012) is a CryptoAPI/CSP result for attempting the same cryptographic transformation twice on the same data state. Microsoft documents it for both CryptEncrypt and CryptDecrypt: the application attempted to encrypt, or respectively decrypt, the same data twice.

This result is about API state and buffer usage. It is not a statement about whether layered encryption is cryptographically strong or whether data may ever be intentionally encrypted more than once with independent operations.

What to inspect

  • Which API returned the error: CryptEncrypt or CryptDecrypt.
  • The key/provider context, flags, Final value, buffer identity, input length, and the call sequence that reused the data.
  • Whether a retry path, callback, or error-recovery branch submitted the same in-place buffer a second time.
  • Whether the application intended a separate cryptographic layer but accidentally reused state from the previous transformation.

Corrective action

Make each intended transform explicit and call it once for the corresponding buffer/state. If a second independent encryption or decryption layer is required, use the correct next key/context and the output of the preceding operation rather than replaying the same API state.

Technical references


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