====== 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//