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:

  1. Imposta DefaultMode al valore specificato
  2. Inizializza OpenSSL e verifica la versione
  3. 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

Zuletzt geändert: il 29/01/2026 alle 23:16