Color scheme: Riviera
You are here: start » sl » Dokumentacija » Postkvantna kriptografija » WKL.System.Security.Cryptography – pregled » Odpravljanje težav » Kriptografski ponudnik ni registriran

Kriptografski ponudnik ni registriran

PostQuantumConfig.EnablePostQuantum sproži CryptographicException ali pa operacija z deležem PQ sproži 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.

Okolje

  • Aplikacije, ki se sklicujejo samo na WKL.System.Security.Cryptography.Core, ne pa na WKL.System.Security.Cryptography.Extensions.
  • Blazor WebAssembly brez registracije ponudnika WebAssembly.

Vzrok

Postopke PQ izračuna ponudnik, ki izvaja vmesnik ICryptoProvider: NativeCryptoProvider z OpenSSL ali WasmCryptoProvider v brskalniku. Če ponudnik ni registriran, knjižnica ob prvi potrebi poišče sklop WKL.System.Security.Cryptography.Extensions in registrira njegov NativeCryptoProvider. Če sklop ni del aplikacije, registracija ostane prazna. V Blazor WebAssembly je tako vedno, ker ponudnik za OpenSSL v brskalniku ne deluje.

Rešitev

  • Strežnik in namizje: dodajte sklic na WKL.System.Security.Cryptography.Extensions. Po objavi preverite, da je WKL.System.Security.Cryptography.Extensions.dll ob aplikaciji. Registracija v kodi takrat ni potrebna.
  • Blazor WebAssembly: ponudnika WebAssembly registrirajte ob zagonu, kot opisuje Uporaba knjižnice v Blazorju.
  • Lasten ponudnik: registrirajte ga s CryptoProviderFactory.RegisterProvider(() => …) pred klicem EnablePostQuantum.
sl/wiki/pqcrypt/lib/troubleshooting/no-crypto-provider-registered.txt · Last modified: by Wolfgang van der Stille