| Previous | Next |
| SL_REMAPPING_SP_PUB_CRYPTO_HASH_FINALIZED | SL_REMAPPING_SP_PUB_CRYPTO_KEY_NOT_FOUND |
SL_REMAPPING_SP_PUB_CRYPTO_KEY_NOT_AVAILABLE
What the protected licensing code means
Keep the symbolic result SL_REMAPPING_SP_PUB_CRYPTO_KEY_NOT_AVAILABLE together with HRESULT 0xC004D20A. The producer is cryptographic processing inside the security processor; at the provider, algorithm, key, hash, signature and block-processing stage used to authenticate protected licensing data, Windows determined that the key identifier is known but the key cannot be used in the current protected state.
This distinction matters because unavailable is different from KEY_NOT_FOUND: the key may exist but be inaccessible at this stage. A later “not licensed” state should not replace the first exact HRESULT in logs.
What to capture before recovery
- provider and algorithm identifiers
- key type and key-material length
- cipher mode, block size and padding mode
- hash state and digest length
- signature format, length and verification key
Where it sits in the licensing pipeline
Algorithm selection, key lookup, block formatting and signature verification are independent boundaries; a failure in one does not prove corruption at the others. To verify this, record key ID, provider, object lifecycle, authorization state and preceding create/import/open result.
Cryptographic material should be logged by identifier, length, hash or thumbprint rather than by exporting secret keys or plaintext protected data.
Comparison with neighboring results
| Result | Different condition |
|---|---|
SL_REMAPPING_SP_PUB_CRYPTO_HASH_FINALIZED | Compared with this result, additional data was supplied after the hash object had already been finalized. |
SL_REMAPPING_SP_PUB_CRYPTO_KEY_NOT_FOUND | Compared with this result, the selected provider has no key object for the requested identifier. |
SL_REMAPPING_SP_PUB_CRYPTO_NOT_BLOCK_ALIGNED | Compared with this result, input length is not a whole multiple of the cipher block size for a mode that requires aligned data. |
Investigation sequence
- Start with the earliest event carrying it; later status queries may only report the resulting unlicensed or notification state.
- Use read-only inspection first: record key ID, provider, object lifecycle, authorization state and preceding create/import/open result.
Actions that usually destroy useful evidence
- Do not disable signature or padding validation to make the operation continue.
- Do not publish keys, decrypted license blobs or complete protected payloads in a support ticket.
What to repair—and what not to reset
Complete the required state transition or authorization and reopen the key through the supported path.
Representative case: A decryption key exists but is requested before the protected environment is committed.
Technical references
- CNG cryptographic primitive functions — reference for evidence collection and post-repair verification.
- BCryptHashData — technical contract for the subsystem producing it.
- BCryptVerifySignature — official platform context used to interpret it.
- Signing data with CNG — supported state, API or recovery information relevant to this HRESULT.
Looking for a different code? Search another status or error code.