====== Razred CryptoConfig ====== Statični konfiguracijski razred za globalne nastavitve PQ-Crypto. ---- ===== Definicija ===== namespace WvdS.System.Security.Cryptography public static class CryptoConfig ---- ===== Lastnosti ===== ^ Ime ^ Tip ^ Opis ^ | DefaultMode | [[.:cryptomode|CryptoMode]] | Globalni kriptografski način za vse operacije. Privzeto: ''CryptoMode.Classic'' | | OpenSslPath | string? | Opcijska pot do knjižnice OpenSSL 3.6 | ---- ==== Lastnost DefaultMode ==== Pridobi ali nastavi globalni kriptografski način. public static CryptoMode DefaultMode { get; set; } | Tip | [[.:cryptomode|CryptoMode]] | | Privzeta vrednost | ''CryptoMode.Classic'' | Ta lastnost določa privzeto obnašanje vseh razširitvenih metod, ko ni podan ekspliciten ''CryptoMode''. ^ Vrednost ^ Obnašanje ^ | Classic | Brez PQ-razširitev | | Hybrid | RSA/ECDSA + ML-DSA | | PostQuantum | Samo ML-DSA/ML-KEM | **Primer:** // Ob zagonu aplikacije CryptoConfig.DefaultMode = CryptoMode.Hybrid; // Vse naslednje operacije uporabljajo Hybrid var cert = request.CreateSelfSigned(notBefore, notAfter); // cert.HasPqSignature() == true ---- ==== Lastnost OpenSslPath ==== Pridobi ali nastavi pot do knjižnice OpenSSL. public static string? OpenSslPath { get; set; } | Tip | ''string?'' | | Privzeta vrednost | ''null'' (avtomatsko iskanje) | Ko je ''null'', knjižnica avtomatsko išče OpenSSL: ^ Platforma ^ Iskalne poti ^ | Windows x64 | ''libcrypto-3-x64.dll'' v imeniku aplikacije, PATH | | Linux | ''libcrypto.so.3'' v LD_LIBRARY_PATH, /usr/lib | | macOS | ''libcrypto.3.dylib'' v DYLD_LIBRARY_PATH, /opt/homebrew/lib | OpenSSL **3.6.0 ali novejši** je potreben za podporo ML-DSA in ML-KEM. **Primeri za platforme:** // 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"; ---- ===== Metode ===== ^ Ime ^ Opis ^ | EnablePostQuantum(CryptoMode) | Aktivira PQ-kriptografijo in inicializira OpenSSL | ---- ==== Metoda EnablePostQuantum ==== Aktivira post-kvantno kriptografijo in inicializira interop z OpenSSL. public static void EnablePostQuantum(CryptoMode mode = CryptoMode.Hybrid) **Parametri:** ^ Ime ^ Tip ^ Opis ^ | mode | [[.:cryptomode|CryptoMode]] | Način za aktivacijo. Privzeto: ''CryptoMode.Hybrid'' | Ta metoda je priročna funkcija, ki: - Nastavi ''DefaultMode'' na podano vrednost - Inicializira OpenSSL in preveri različico - Naloži kriptografskega ponudnika Enakovredno z: CryptoConfig.DefaultMode = mode; CryptoProviderFactory.GetProvider().Initialize(); **Primeri:** // Aktivira način Hybrid (privzeto) CryptoConfig.EnablePostQuantum(); // Samo za popolnoma PQ-zmožna okolja CryptoConfig.EnablePostQuantum(CryptoMode.PostQuantum); **Izjeme:** | DllNotFoundException | Knjižnica OpenSSL ni najdena | | InvalidOperationException | Različica OpenSSL < 3.6 ali PQ-algoritmi niso na voljo | ---- ===== Varnost niti ===== Spremembe ''DefaultMode'' in ''OpenSslPath'' so varne za niti. Te vrednosti idealno spreminjajte samo ob zagonu aplikacije. ---- ===== Opombe ===== ''CryptoConfig'' je osrednja konfiguracijska točka za celotno knjižnico. Nastavitve veljajo globalno za vse niti. // Priporočena inicializacija v Program.cs ali Startup CryptoConfig.DefaultMode = CryptoMode.Hybrid; CryptoConfig.OpenSslPath = @"C:\OpenSSL\bin\libcrypto-3-x64.dll"; ---- ===== Glejte tudi ===== * [[.:cryptomode|Enum CryptoMode]] * [[.:providers:start|Imenski prostor Providers]] * [[.:start|Pregled API]] {{tag>klasse konfiguration static}} ---- //Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional//