====== Providers Namespace ====== **Namespace:** ''WvdS.System.Security.Cryptography.Providers'' Contains crypto providers for different runtime environments. ---- ===== Interfaces ===== ^ Interface ^ Description ^ | [[.:icryptoprovider|ICryptoProvider]] | Defines the interface for crypto backends | ---- ===== Classes ===== ^ Class ^ Description ^ | CryptoProviderFactory | Factory for obtaining 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 ---- ===== Remarks ===== 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 ===== * [[..:cryptoconfig|CryptoConfig Class]] * [[..:start|API Overview]] {{tag>namespace providers}} ---- //Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional//