Color scheme: Light
You are here: start » de » Dokumentation » Post-Quanten-Kryptografie » WKL.System.Security.Cryptography – Überblick » Fehlerbehebung » Es ist kein Kryptografieanbieter registriert

Es ist kein Kryptografieanbieter registriert

PostQuantumConfig.EnablePostQuantum wirft eine CryptographicException, oder eine Operation mit PQ-Anteil wirft eine InvalidOperationException:

No ICryptoProvider registered. Call CryptoProviderFactory.RegisterProvider() during startup.
No CryptoProvider registered. Call CryptoProviderFactory.RegisterProvider() or CryptoProviderFactory.SetProvider() during application startup. For Blazor WASM, register WasmCryptoProvider. For Server/Desktop, register NativeCryptoProvider.

Umgebung

  • Anwendungen, die nur auf WKL.System.Security.Cryptography.Core verweisen, nicht auf WKL.System.Security.Cryptography.Extensions.
  • Blazor WebAssembly ohne Registrierung des WebAssembly-Anbieters.

Ursache

Die PQ-Verfahren rechnet ein Anbieter, der die Schnittstelle ICryptoProvider umsetzt: NativeCryptoProvider mit OpenSSL oder WasmCryptoProvider im Browser. Ist kein Anbieter registriert, sucht die Bibliothek beim ersten Bedarf die Assembly WKL.System.Security.Cryptography.Extensions und registriert deren NativeCryptoProvider. Gehört die Assembly nicht zur Anwendung, bleibt die Registrierung leer. In Blazor WebAssembly ist das immer so, weil der Anbieter für OpenSSL im Browser nicht läuft.

Lösung

  • Server und Desktop: Verweisen Sie auf WKL.System.Security.Cryptography.Extensions. Prüfen Sie nach dem Veröffentlichen, dass WKL.System.Security.Cryptography.Extensions.dll neben der Anwendung liegt. Eine Registrierung im Code ist dann nicht nötig.
  • Blazor WebAssembly: Registrieren Sie den WebAssembly-Anbieter beim Start, wie es So verwenden Sie die Bibliothek in Blazor beschreibt.
  • Eigener Anbieter: Registrieren Sie ihn mit CryptoProviderFactory.RegisterProvider(() => …) vor dem Aufruf von EnablePostQuantum.
de/wiki/pqcrypt/lib/troubleshooting/no-crypto-provider-registered.txt · Last modified: by Wolfgang van der Stille