Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In .NET 10 kann die Eigenschaft CoseSigner.Key jetzt null zurückgeben. Wenn CoseSigner auf einem RSA- oder ECDSA-Schlüssel basiert, gibt CoseSigner.Key einen Nicht-NULL-Schlüssel zurück. Wenn CoseSigner jedoch von einem Schlüssel gesichert wird, der nicht von AsymmetricAlgorithm abgeleitet ist, wie MLDsa (ein neuer Signaturalgorithmus der Post-Quantum-Kryptographie (PQC)), gibt CoseSigner.Keynull zurück.
Eingeführt in Version
.NET 10
Vorheriges Verhalten
CoseSigner.Key konnte zuvor nicht null. Es hatte Typ AsymmetricAlgorithm.
Neues Verhalten
Ab .NET 10 kann CoseSigner.Keynull sein. Der Typ ist AsymmetricAlgorithm?.
using RSA rsaKey = RSA.Create();
CoseSigner signer = new CoseSigner(rsaKey, RSASignaturePadding.Pss, HashAlgorithmName.SHA512);
// signer.Key is rsaKey here.
// CoseKey is a new abstraction for all keys used in COSE.
CoseKey coseKey = new CoseKey(rsaKey, RSASignaturePadding.Pss, HashAlgorithmName.SHA512);
signer = new CoseSigner(coseKey);
// signer.Key is rsaKey here.
using MLDsa mldsa = MLDsa.GenerateKey(MLDsaAlgorithm.MLDsa44);
coseKey = new CoseKey(mldsa);
signer = new CoseSigner(coseKey);
// signer.Key is null here.
Art der einschneidenden Änderung
Dies ist eine Verhaltensänderung , kann sich aber auch auf die Quellkompatibilität auswirken.
Grund für Änderung
Mit der Einführung neuer Signaturalgorithmen wie ML-DSA hat .NET sich von der Verwendung AsymmetricAlgorithm als universelle Basisklasse für alle asymmetrischen Algorithmen entfernt. Ebenso kann CoseSigner jetzt mit einem Schlüssel erstellt werden, der nicht von AsymmetricAlgorithm abgeleitet ist. In diesem Fall kann CoseSigner.Key kein AsymmetricAlgorithm bereitstellen, das den zugrunde liegenden Schlüssel darstellt, und gibt daher stattdessen null zurück.
Empfohlene Aktion
Es ist immer noch in Ordnung, CoseSigner.Key zu verwenden, aber achten Sie darauf, null-Werte zu behandeln.