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