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