====== WvdS.System.Security.Cryptography.Providers Namespace ====== Contains crypto providers for various runtime environments. ---- ===== Interfaces ===== ^ Interface ^ Description ^ | [[.:icryptoprovider|ICryptoProvider]] | Defines the interface for crypto backends | ---- ===== Classes ===== ^ Class ^ Description ^ | [[.:cryptoproviderfactory|CryptoProviderFactory]] | Factory for retrieving the platform-specific provider | | [[.:nativecryptoprovider|NativeCryptoProvider]] | Provider for Desktop/Server (P/Invoke to OpenSSL) | | [[.:wasmcryptoprovider|WasmCryptoProvider]] | Provider for Blazor WebAssembly (JavaScript Interop) | ---- ===== Architecture ===== +-----------------------------------------+ | ICryptoProvider | | (GenerateMlDsaKeyPair, Sign, ...) | +-------------------+---------------------+ | +-------+-------+ v v +---------------+ +---------------+ | Native | | WASM | | Provider | | Provider | | (P/Invoke) | | (JS Interop) | +---------------+ +---------------+ | | v v OpenSSL 3.6 openssl.wasm ---- ===== Notes ===== The ''CryptoProviderFactory'' automatically detects the runtime environment: * **Desktop/Server/Blazor Server:** ''NativeCryptoProvider'' * **Blazor WebAssembly:** ''WasmCryptoProvider'' // Automatic provider selection var provider = CryptoProviderFactory.GetProvider(); await provider.InitializeAsync(); ---- ===== See Also ===== * [[..:start|Root Namespace]] * [[en:int:pqcrypt:api:start|API Overview]] {{tag>namespace providers}} ---- //Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional//