- Neuer Indexer eingeführt, um den Zugriff auf Dechiffrierer über den Index zu ermöglichen und so flexibleren Zugriff auf Elemente in der Decryptors-Sammlung zu bieten.
- Validierung der Indexgrenzen hinzugefügt, um eine ArgumentOutOfRangeException zu werfen, wenn ein ungültiger Index angegeben wird.
- Bestehende Funktionalität zum Zugriff auf Dechiffrierer über den Schlüssel beibehalten.
- PbeHashAlgorithmName.init Methoden hinzugefügt, um zu versuchen, PbeHashAlgorithm mit Reflection zu initialisieren. Wenn er null ist, wird er nach dem Namen generiert.
- PbeHashAlgorithmName.get hinzugefügt, um den Namen von PbeHashAlgorithm zu erhalten.
- `Encrypt`-Methode überarbeitet, um `ToBytes` und `ToBase64String` für Konsistenz und bessere Lesbarkeit zu verwenden.
- Parametername in der Methode `Encrypt(string)` von `data` zu `strData` geändert, um die Verständlichkeit zu verbessern.
- CS8603-Warnung für den `Pem`-Getter in `RSADecryptor` mit `#pragma warning disable/restore` unterdrückt.
- Konsistentes Verhalten sichergestellt, ohne die Laufzeitlogik zu ändern.
- Lazy-Initialisierungsmechanismus für threadsichere Handhabung der _pbeParameters eingeführt.
- IsInitialized-Eigenschaft hinzugefügt, um den Initialisierungsstatus zu verfolgen.
- Konstruktor geändert, um das Lazy-Objekt zu initialisieren und das AfterCreate-Ereignis auszulösen.
- Sichergestellt, dass die OnDeserialized-Methode Init aufruft, um das Objekt korrekt zu initialisieren.
- Optionen aktualisiert, um Vault-Parameter hinzufügen zu können. Wenn es null ist, ist Vault der erste Entschlüsseler.
- Standard-Entschlüssler entfernt.
- Hinzugefügt: `IEnumerable<IRSADecryptor>` und `IEnumerable<IRSAEncryptor>` zum `IAsymCryptService`-Interface.
- Einführung einer `Default`-Eigenschaft für den einfachen Zugriff auf einen Standard-Entschlüsseler.
- Aktualisierung des `IAsymCryptService`-Interfaces zur Unterstützung sowohl von Entschlüsselungs- als auch Verschlüsselungsfunktionen.
- Methode `CreateDecryptor` hinzugefügt, um die Erstellung von `IRSADecryptor`-Instanzen zu vereinfachen.
- Stellt sicher, dass Decryptors mit PEM, Aussteller, Empfänger, Verschlüsselungsstatus und Padding-Einstellungen initialisiert werden.
- Bestehende Funktionalität zur Erstellung privater und verschlüsselter privater Schlüssel beibehalten.
- Die RSA-Factory verbessert, um Workflows zur Entschlüsselung besser zu unterstützen.
- Die `Pem`-Eigenschaft aktualisiert, sodass während der Initialisierung automatisch `Init()` aufgerufen wird, um eine konsistente Einrichtung sicherzustellen.
- Die Methode `SetPem` überarbeitet, um nach dem Setzen des PEM-Werts `Init()` aufzurufen.
- Die Methode `Init()` verbessert, um null- oder leere PEM-Werte robuster zu behandeln.
- Fehlermeldungen für mehr Klarheit und bessere Debugging-Unterstützung verbessert.
- Interne RSA-Initialisierungslogik an die Verarbeitung von Verschlüsselungen angepasst.
- `AddAsymCryptService` aktualisiert, um eine Standardimplementierung mit `AsymCryptParams` ohne generische Typen bereitzustellen.
- Neue Überladung von `AddAsymCryptService` hinzugefügt, die eine `IConfigurationSection` für Standardparameter akzeptiert.
- Lebensdauer der Service-Registrierungen für `IAsymCryptService` von `Scoped` auf `Singleton` geändert, um Konsistenz und geringeren Overhead zu gewährleisten.
- Neue Index-Eigenschaft `this[string key]` zur `IAsymCryptService`-Schnittstelle hinzugefügt.
- Ermöglicht das Abrufen spezifischer `IRSADecryptor`-Instanzen anhand eines Schlüsselstrings.
- Schnittstellendefinition aktualisiert, um die Funktionalität für implementierende Klassen zu erweitern.
- Neue Index-Eigenschaft `this[string key]` in `AsymCryptService` eingeführt, um spezifische `IRSADecryptor`-Instanzen basierend auf Issuer- und Audience-Schlüsseln abzurufen.
- Validierung des Schlüsselformats und Fehlerbehandlung für Fälle hinzugefügt, in denen kein passender Decryptor gefunden wird.
- Implementierung aktualisiert, um die Kompatibilität mit der bestehenden Decryptor-Enumerationslogik sicherzustellen.