0x80093015 OSS_NULL_FCN Fix: ASN1 Null Function Pointer
This error means Windows can't find or load a critical ASN.1 decoding function. The fix is reinstalling the Cryptographic Services component cleanly.
You hit 0x80093015 — that's a OSS_NULL_FCN from the ASN.1 decoding stack. Frustrating, I know, because the error tells you nothing useful about which function is missing. The core cause: Windows Cryptography Services got corrupted or partially uninstalled, and the ASN.1 parser can't resolve the function pointers it needs to decode certificates, signatures, or PKCS7 blobs.
The Real Fix: Reinstall Cryptographic Services
Skip all the registry tweaks and SFC scans you'll find on forums — they don't address the root problem. What's actually happening here is that the ASN.1 decoder (ossprov.dll and its dependencies) can't load its function table, meaning the DLLs are either missing, mismatched, or the COM registration is broken. The only reliable fix is a clean reinstall of the Cryptographic Services component via DISM.
- Open an elevated Command Prompt. Hit Start, type
cmd, right-click Command Prompt, choose "Run as administrator." - Run this DISM command exactly:
This scans the component store and replaces any corrupted or missing files — includingdism /online /cleanup-image /restorehealthossprov.dll,crypt32.dll, and the ASN.1 support DLLs. Wait for it to complete (100%). - Then re-register the Cryptographic Services:
Theregsvr32 /s ossprov.dll regsvr32 /s crypt32.dll regsvr32 /s softpub.dll/sflag suppresses popups. You should see no errors. If any of these fail, you've got deeper corruption — skip to the Less Common Variations section. - Reboot. Not optional. The service needs a clean start to load the restored function table.
After reboot, test your original operation (update, certificate import, code signing, whatever triggered it). The error should be gone.
Why Reinstalling Cryptographic Services Works
The error code 0x80093015 maps to OSS_NULL_FCN in the ASN.1 runtime. The ASN.1 decoder uses a function pointer table — think of it as an array of addresses for each decoding operation (BER, DER, CER, etc.). When ossprov.dll loads, it queries the registry for the path to these function tables. If the registry entry is missing, the DLL can't find the pointer, returns null, and you get OSS_NULL_FCN.
DISM's /restorehealth doesn't just fix file hashes — it also repairs COM registration entries in the registry under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography. That's the missing link. Without those registry keys, even the correct DLLs won't load their function tables. The regsvr32 steps then force the DLLs to re-register their COM interfaces, which rebuilds those registry entries from scratch.
The reason step 3 works is that regsvr32 calls each DLL's DllRegisterServer export, which writes the necessary CLSIDs and function table paths back into the registry. The ASN.1 decoder then finds its pointers on the next load.
Less Common Variations of This Error
Sometimes the standard fix doesn't cut it. Here's what else you might run into:
- Windows Update Error 0x80093015: This usually happens when Windows Update tries to verify a signed catalog file (.cat) and can't decode the PKCS7 signature. The fix above works 90% of the time. If it doesn't, try
wuauclt /detectnowafter the repair to force a new update check. - Code Signing Tools (SignTool.exe) Fail: If you're signing drivers or executables and get
OSS_NULL_FCN, the issue might be a corrupted signing certificate in your personal store. Export the certificate and re-import it intoCert:\CurrentUser\My. Then re-registermssign32.dll:
regsvr32 /s mssign32.dll
- IIS or Schannel (TLS/SSL) Error: If this error appears in System Event log with source Schannel, it means the TLS handshake failed because the server certificate's ASN.1 structure couldn't be decoded. The fix is the same DISM + regsvr32 approach, but you might also need to re-import the server certificate via IIS Manager (not just CertMgr).
- Custom Applications Using CryptoAPI: Some third-party apps call
CryptDecodeObjectdirectly. If they hitOSS_NULL_FCN, it's almost always a corruptedCrypt32.dllcopy — not the system one, but a local copy bundled with the app. Replace that copy with the system version fromC:\Windows\System32.
Prevention: Keep Cryptographic Services Healthy
You don't want to chase this error again. Three rules:
- Never manually delete or move files in
C:\Windows\System32\catrootorC:\Windows\System32\catroot2. Those folders hold the catalog database that Cryptographic Services uses. Corrupting them is a one-way ticket to0x80093015and worse. - Run DISM and SFC monthly. Not weekly — that's overkill. But once a month, after Patch Tuesday, run
dism /online /cleanup-image /restorehealthfollowed bysfc /scannow. Keeps the component store clean. - Watch what you uninstall. Some "system cleaner" tools (CCleaner, certain registry cleaners) removed Cryptographic Services from the uninstall list on older Windows builds. Windows 10/11 protect it better, but third-party drivers or badly written uninstallers can still zap registry entries. If you see
CryptSvcmissing inservices.msc, you've got bigger problems — restore from a backup or do a repair install.
Bottom line:
0x80093015is a registry problem, not a file problem. DISM fixes the files;regsvr32fixes the references. Do both, reboot, and you're done.
Was this solution helpful?