Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I .NET 10 kan nu egenskapen CoseSigner.Key returnera null. Om CoseSigner backas upp av en RSA- eller ECDSA-nyckel returnerar du CoseSigner.Key en icke-null-nyckel. Men när CoseSigner backas upp av en nyckel som inte härleds från AsymmetricAlgorithm, som MLDsa (en ny PQC-signeringsalgoritm (Post-Quantum Cryptography) returnerar CoseSigner.Keynull.
Version lanserad
.NET 10
Tidigare beteende
CoseSigner.Key Det gick inte tidigare att vara null. Den hade typ AsymmetricAlgorithm.
Nytt beteende
Från och med .NET 10 CoseSigner.Key kan vara null. Dess typ är 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.
Typ av brytande ändring
Det här är en beteendeförändring , men det kan också påverka källkompatibiliteten.
Orsak till ändring
Med introduktionen av nya signeringsalgoritmer som ML-DSA har .NET gått från att använda AsymmetricAlgorithm som universell basklass för alla asymmetriska algoritmer.
CoseSigner På samma sätt kan nu konstrueras med en nyckel som inte härleds från AsymmetricAlgorithm. I det här fallet CoseSigner.Key kan du inte returnera en AsymmetricAlgorithm som representerar den underliggande nyckeln och returnerar null därför i stället.
Rekommenderad åtgärd
Det är fortfarande okej att använda CoseSigner.Key men se till att hantera null värden.