====== CryptoConfig Klasse ======
Statische Konfigurationsklasse für globale PQ-Crypto-Einstellungen.
----
===== Definition =====
namespace WvdS.System.Security.Cryptography
public static class CryptoConfig
----
===== Eigenschaften =====
^ Name ^ Typ ^ Beschreibung ^
| DefaultMode | [[.:cryptomode|CryptoMode]] | Globaler Krypto-Modus für alle Operationen. Standard: ''CryptoMode.Classic'' |
| OpenSslPath | string? | Optionaler Pfad zur OpenSSL 3.6 Library |
----
==== DefaultMode Eigenschaft ====
Ruft den globalen Krypto-Modus ab oder legt ihn fest.
public static CryptoMode DefaultMode { get; set; }
| Typ | [[.:cryptomode|CryptoMode]] |
| Standardwert | ''CryptoMode.Classic'' |
Diese Eigenschaft bestimmt das Standardverhalten aller Extension-Methoden, wenn kein expliziter ''CryptoMode'' übergeben wird.
^ Wert ^ Verhalten ^
| Classic | Keine PQ-Erweiterungen |
| Hybrid | RSA/ECDSA + ML-DSA |
| PostQuantum | Nur ML-DSA/ML-KEM |
**Beispiel:**
// Beim Anwendungsstart
CryptoConfig.DefaultMode = CryptoMode.Hybrid;
// Alle folgenden Operationen verwenden Hybrid
var cert = request.CreateSelfSigned(notBefore, notAfter);
// cert.HasPqSignature() == true
----
==== OpenSslPath Eigenschaft ====
Ruft den Pfad zur OpenSSL-Library ab oder legt ihn fest.
public static string? OpenSslPath { get; set; }
| Typ | ''string?'' |
| Standardwert | ''null'' (automatische Suche) |
Wenn ''null'', sucht die Bibliothek automatisch nach OpenSSL:
^ Plattform ^ Suchpfade ^
| Windows x64 | ''libcrypto-3-x64.dll'' im Anwendungsverzeichnis, 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 oder höher** ist erforderlich für ML-DSA und ML-KEM Unterstützung.
**Plattform-Beispiele:**
// 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";
----
===== Methoden =====
^ Name ^ Beschreibung ^
| EnablePostQuantum(CryptoMode) | Aktiviert PQ-Kryptographie und initialisiert OpenSSL |
----
==== EnablePostQuantum Methode ====
Aktiviert Post-Quantum-Kryptographie und initialisiert die OpenSSL-Interop.
public static void EnablePostQuantum(CryptoMode mode = CryptoMode.Hybrid)
**Parameter:**
^ Name ^ Typ ^ Beschreibung ^
| mode | [[.:cryptomode|CryptoMode]] | Der zu aktivierende Modus. Standard: ''CryptoMode.Hybrid'' |
Diese Methode ist eine Convenience-Funktion, die:
- ''DefaultMode'' auf den angegebenen Wert setzt
- OpenSSL initialisiert und die Version prüft
- Den Crypto-Provider lädt
Äquivalent zu:
CryptoConfig.DefaultMode = mode;
CryptoProviderFactory.GetProvider().Initialize();
**Beispiele:**
// Aktiviert Hybrid-Modus (Standard)
CryptoConfig.EnablePostQuantum();
// Nur für vollständig PQ-fähige Umgebungen
CryptoConfig.EnablePostQuantum(CryptoMode.PostQuantum);
**Ausnahmen:**
| DllNotFoundException | OpenSSL-Library nicht gefunden |
| InvalidOperationException | OpenSSL-Version < 3.6 oder PQ-Algorithmen nicht verfügbar |
----
===== Thread-Sicherheit =====
Änderungen an ''DefaultMode'' und ''OpenSslPath'' sind thread-sicher. Ändern Sie diese Werte idealerweise nur beim Anwendungsstart.
----
===== Hinweise =====
''CryptoConfig'' ist der zentrale Konfigurationspunkt für die gesamte Bibliothek. Einstellungen gelten global für alle Threads.
// Empfohlene Initialisierung in Program.cs oder Startup
CryptoConfig.DefaultMode = CryptoMode.Hybrid;
CryptoConfig.OpenSslPath = @"C:\OpenSSL\bin\libcrypto-3-x64.dll";
----
===== Siehe auch =====
* [[.:cryptomode|CryptoMode Enum]]
* [[.:providers:start|Providers Namespace]]
* [[.:start|API-Übersicht]]
{{tag>klasse konfiguration static}}
----
//Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional//