Inhaltsverzeichnis
Classe CryptoConfig
Classe di configurazione statica per le impostazioni globali PQ-Crypto.
Definizione
namespace WvdS.System.Security.Cryptography public static class CryptoConfig
Proprieta
| Nome | Tipo | Descrizione |
|---|---|---|
| DefaultMode | CryptoMode | Modalita crittografica globale per tutte le operazioni. Default: CryptoMode.Classic |
| OpenSslPath | string? | Percorso opzionale alla libreria OpenSSL 3.6 |
Proprieta DefaultMode
Ottiene o imposta la modalita crittografica globale.
public static CryptoMode DefaultMode { get; set; }
| Tipo | CryptoMode |
| Valore predefinito | CryptoMode.Classic |
Questa proprieta determina il comportamento predefinito di tutti i metodi extension quando non viene passato un CryptoMode esplicito.
| Valore | Comportamento |
|---|---|
| Classic | Nessuna estensione PQ |
| Hybrid | RSA/ECDSA + ML-DSA |
| PostQuantum | Solo ML-DSA/ML-KEM |
Esempio:
// All'avvio dell'applicazione CryptoConfig.DefaultMode = CryptoMode.Hybrid; // Tutte le operazioni successive usano Hybrid var cert = request.CreateSelfSigned(notBefore, notAfter); // cert.HasPqSignature() == true
Proprieta OpenSslPath
Ottiene o imposta il percorso alla libreria OpenSSL.
public static string? OpenSslPath { get; set; }
| Tipo | string? |
| Valore predefinito | null (ricerca automatica) |
Se null, la libreria cerca automaticamente OpenSSL:
| Piattaforma | Percorsi di ricerca |
|---|---|
| Windows x64 | libcrypto-3-x64.dll nella directory applicazione, PATH |
| Linux | libcrypto.so.3 in LD_LIBRARY_PATH, /usr/lib |
| macOS | libcrypto.3.dylib in DYLD_LIBRARY_PATH, /opt/homebrew/lib |
OpenSSL 3.6.0 o superiore e richiesto per il supporto ML-DSA e ML-KEM.
Esempi per piattaforma:
// Windows CryptoConfig.OpenSslPath = @"C:\OpenSSL-3.6\bin\libcrypto-3-x64.dll"; // Linux CryptoConfig.OpenSslPath = "/opt/openssl-3.6/lib64/libcrypto.so.3"; // macOS CryptoConfig.OpenSslPath = "/opt/homebrew/opt/openssl@3/lib/libcrypto.3.dylib";
Metodi
| Nome | Descrizione |
|---|---|
| EnablePostQuantum(CryptoMode) | Attiva la crittografia PQ e inizializza OpenSSL |
Metodo EnablePostQuantum
Attiva la crittografia post-quantum e inizializza l'interop OpenSSL.
public static void EnablePostQuantum(CryptoMode mode = CryptoMode.Hybrid)
Parametri:
| Nome | Tipo | Descrizione |
|---|---|---|
| mode | CryptoMode | La modalita da attivare. Default: CryptoMode.Hybrid |
Questo metodo e una funzione di convenienza che:
- Imposta
DefaultModeal valore specificato - Inizializza OpenSSL e verifica la versione
- Carica il Crypto-Provider
Equivalente a:
CryptoConfig.DefaultMode = mode; CryptoProviderFactory.GetProvider().Initialize();
Esempi:
// Attiva modalita Hybrid (default) CryptoConfig.EnablePostQuantum(); // Solo per ambienti completamente PQ-ready CryptoConfig.EnablePostQuantum(CryptoMode.PostQuantum);
Eccezioni:
| DllNotFoundException | Libreria OpenSSL non trovata |
| InvalidOperationException | Versione OpenSSL < 3.6 o algoritmi PQ non disponibili |
Thread Safety
Le modifiche a DefaultMode e OpenSslPath sono thread-safe. Idealmente, modificare questi valori solo all'avvio dell'applicazione.
Note
CryptoConfig e il punto di configurazione centrale per l'intera libreria. Le impostazioni si applicano globalmente a tutti i thread.
// Inizializzazione raccomandata in Program.cs o Startup CryptoConfig.DefaultMode = CryptoMode.Hybrid; CryptoConfig.OpenSslPath = @"C:\OpenSSL\bin\libcrypto-3-x64.dll";
Vedi anche
Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional