====== CryptoConfig klasa ====== Statička konfiguracijska klasa za globalne PQ-Crypto postavke. ---- ===== Definicija ===== namespace WvdS.System.Security.Cryptography public static class CryptoConfig ---- ===== Svojstva ===== ^ Naziv ^ Tip ^ Opis ^ | DefaultMode | [[.:cryptomode|CryptoMode]] | Globalni kripto-način rada za sve operacije. Standardno: ''CryptoMode.Classic'' | | OpenSslPath | string? | Opcionalna putanja do OpenSSL 3.6 biblioteke | ---- ==== Svojstvo DefaultMode ==== Dohvaća ili postavlja globalni kripto-način rada. public static CryptoMode DefaultMode { get; set; } | Tip | [[.:cryptomode|CryptoMode]] | | Standardna vrijednost | ''CryptoMode.Classic'' | Ovo svojstvo određuje standardno ponašanje svih extension metoda kada se eksplicitno ne proslijedi ''CryptoMode''. ^ Vrijednost ^ Ponašanje ^ | Classic | Bez PQ proširenja | | Hybrid | RSA/ECDSA + ML-DSA | | PostQuantum | Samo ML-DSA/ML-KEM | **Primjer:** // Pri pokretanju aplikacije CryptoConfig.DefaultMode = CryptoMode.Hybrid; // Sve sljedeće operacije koriste Hybrid var cert = request.CreateSelfSigned(notBefore, notAfter); // cert.HasPqSignature() == true ---- ==== Svojstvo OpenSslPath ==== Dohvaća ili postavlja putanju do OpenSSL biblioteke. public static string? OpenSslPath { get; set; } | Tip | ''string?'' | | Standardna vrijednost | ''null'' (automatsko pretraživanje) | Kada je ''null'', biblioteka automatski traži OpenSSL: ^ Platforma ^ Putanje pretraživanja ^ | Windows x64 | ''libcrypto-3-x64.dll'' u direktoriju aplikacije, PATH | | Linux | ''libcrypto.so.3'' u LD_LIBRARY_PATH, /usr/lib | | macOS | ''libcrypto.3.dylib'' u DYLD_LIBRARY_PATH, /opt/homebrew/lib | OpenSSL **3.6.0 ili noviji** je potreban za podršku ML-DSA i ML-KEM. **Primjeri 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 ===== ^ Naziv ^ Opis ^ | EnablePostQuantum(CryptoMode) | Aktivira PQ-kriptografiju i inicijalizira OpenSSL | ---- ==== Metoda EnablePostQuantum ==== Aktivira post-kvantnu kriptografiju i inicijalizira OpenSSL interop. public static void EnablePostQuantum(CryptoMode mode = CryptoMode.Hybrid) **Parametri:** ^ Naziv ^ Tip ^ Opis ^ | mode | [[.:cryptomode|CryptoMode]] | Način rada za aktiviranje. Standardno: ''CryptoMode.Hybrid'' | Ova metoda je pomoćna funkcija koja: - Postavlja ''DefaultMode'' na navedenu vrijednost - Inicijalizira OpenSSL i provjerava verziju - Učitava Crypto-provider Ekvivalentno: CryptoConfig.DefaultMode = mode; CryptoProviderFactory.GetProvider().Initialize(); **Primjeri:** // Aktivira Hybrid-način rada (standardno) CryptoConfig.EnablePostQuantum(); // Samo za potpuno PQ-sposobna okruženja CryptoConfig.EnablePostQuantum(CryptoMode.PostQuantum); **Iznimke:** | DllNotFoundException | OpenSSL biblioteka nije pronađena | | InvalidOperationException | OpenSSL verzija < 3.6 ili PQ algoritmi nisu dostupni | ---- ===== Sigurnost niti ===== Promjene na ''DefaultMode'' i ''OpenSslPath'' su sigurne za niti. Idealno mijenjajte ove vrijednosti samo pri pokretanju aplikacije. ---- ===== Napomene ===== ''CryptoConfig'' je centralna konfiguracijska točka za cijelu biblioteku. Postavke vrijede globalno za sve niti. // Preporučena inicijalizacija u Program.cs ili Startup CryptoConfig.DefaultMode = CryptoMode.Hybrid; CryptoConfig.OpenSslPath = @"C:\OpenSSL\bin\libcrypto-3-x64.dll"; ---- ===== Vidi također ===== * [[.:cryptomode|CryptoMode Enum]] * [[.:providers:start|Providers prostor imena]] * [[.:start|API-pregled]] {{tag>klasse konfiguration static}} ---- //Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional//