====== WvdS.System.Security.Cryptography.Providers Namespace ======
Contiene i provider crittografici per diversi ambienti di esecuzione.
----
===== Interfacce =====
^ Interfaccia ^ Descrizione ^
| [[.:icryptoprovider|ICryptoProvider]] | Definisce l'interfaccia per i backend crittografici |
----
===== Classi =====
^ Classe ^ Descrizione ^
| [[.:cryptoproviderfactory|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, ...) │
└───────────────┬─────────────────────┘
│
┌───────┴───────┐
▼ ▼
┌───────────────┐ ┌───────────────┐
│ Native │ │ WASM │
│ Provider │ │ Provider │
│ (P/Invoke) │ │ (JS Interop) │
└───────────────┘ └───────────────┘
│ │
▼ ▼
OpenSSL 3.6 openssl.wasm
----
===== Note =====
La ''CryptoProviderFactory'' rileva automaticamente l'ambiente di esecuzione:
* **Desktop/Server/Blazor Server:** ''NativeCryptoProvider''
* **Blazor WebAssembly:** ''WasmCryptoProvider''
// Selezione automatica del provider
var provider = CryptoProviderFactory.GetProvider();
await provider.InitializeAsync();
----
===== Vedi anche =====
* [[..:start|Root Namespace]]
* [[it:int:pqcrypt:api:start|Panoramica API]]
{{tag>namespace providers}}
----
//Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional//