====== Namespace Providers ======
**Namespace:** ''WvdS.System.Security.Cryptography.Providers''
Contiene i provider crittografici per diversi ambienti di runtime.
----
===== Interfacce =====
^ Interfaccia ^ Descrizione ^
| [[.:icryptoprovider|ICryptoProvider]] | Definisce l'interfaccia per i backend crittografici |
----
===== Classi =====
^ Classe ^ Descrizione ^
| CryptoProviderFactory | Factory per ottenere il provider specifico della piattaforma |
| [[.:nativecryptoprovider|NativeCryptoProvider]] | Provider per Desktop/Server (P/Invoke verso OpenSSL) |
| [[.:wasmcryptoprovider|WasmCryptoProvider]] | Provider per Blazor WebAssembly (JavaScript Interop) |
----
===== Architettura =====
+-------------------------------------+
| ICryptoProvider |
| (GenerateMlDsaKeyPair, Sign, ...) |
+---------------+---------------------+
|
+-------+-------+
v v
+---------------+ +---------------+
| Native | | WASM |
| Provider | | Provider |
| (P/Invoke) | | (JS Interop) |
+---------------+ +---------------+
| |
v v
OpenSSL 3.6 openssl.wasm
----
===== Note =====
La ''CryptoProviderFactory'' riconosce automaticamente l'ambiente di runtime:
* **Desktop/Server/Blazor Server:** ''NativeCryptoProvider''
* **Blazor WebAssembly:** ''WasmCryptoProvider''
// Selezione automatica del provider
var provider = CryptoProviderFactory.GetProvider();
await provider.InitializeAsync();
----
===== Vedi anche =====
* [[..:cryptoconfig|Classe CryptoConfig]]
* [[..:start|Panoramica API]]
{{tag>namespace providers}}
----
//Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional//