====== Interfaccia ICryptoProvider ====== Definisce l'interfaccia per i backend crittografici post-quantum. ---- ===== Definizione ===== namespace WvdS.System.Security.Cryptography.Providers public interface ICryptoProvider ---- ===== Proprieta ===== ^ Nome ^ Tipo ^ Descrizione ^ | Name | string | Nome del provider (es. "Native (P/Invoke)") | | IsAvailable | bool | True se il provider e inizializzato e disponibile | ---- ===== Metodi ===== ==== Inizializzazione ==== ^ Nome ^ Descrizione ^ | InitializeAsync() | Inizializza il provider in modo asincrono | | GetOpenSslVersion() | Restituisce la versione di OpenSSL | ==== ML-DSA (Firme) ==== ^ Nome ^ Descrizione ^ | GenerateMlDsaKeyPairAsync(string) | Genera coppia di chiavi ML-DSA | | SignMlDsaAsync(byte[], byte[]) | Firma dati con ML-DSA | | VerifyMlDsaAsync(byte[], byte[], byte[]) | Verifica firma ML-DSA | ==== ML-KEM (Scambio chiavi) ==== ^ Nome ^ Descrizione ^ | GenerateMlKemKeyPairAsync(string) | Genera coppia di chiavi ML-KEM | | EncapsulateAsync(byte[]) | Incapsula Shared Secret | | DecapsulateAsync(byte[], byte[]) | Estrae Shared Secret | ==== Certificati ==== ^ Nome ^ Descrizione ^ | CreateEphemeralCertificateAsync(string, TimeSpan, byte[]) | Crea certificato PQ effimero | | SignCertificateAsync(byte[], byte[]) | Firma certificato TBS con ML-DSA | ---- ===== Note ===== Utilizzare ''CryptoProviderFactory.GetProvider()'' invece dell'istanziazione diretta. ---- ===== Implementazioni ===== * [[.:nativecryptoprovider|NativeCryptoProvider]] - Desktop/Server * [[.:wasmcryptoprovider|WasmCryptoProvider]] - Blazor WebAssembly ---- ===== Vedi anche ===== * [[.:start|Namespace Providers]] * [[..:cryptoconfig|Classe CryptoConfig]] {{tag>schnittstelle interface}} ---- //Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional//