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 naWKL.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 jeWKL.System.Security.Cryptography.Extensions.dllob 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 klicemEnablePostQuantum.
sl/wiki/pqcrypt/lib/troubleshooting/no-crypto-provider-registered.txt · Zuletzt geändert: von Wolfgang van der Stille