====== 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//