Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
No .NET 10, a CoseSigner.Key propriedade agora pode retornar null. Se CoseSigner for apoiado por uma chave RSA ou ECDSA, retornará CoseSigner.Key uma chave não nula. No entanto, quando CoseSigner é apoiado por uma chave que não deriva de AsymmetricAlgorithm, como MLDsa (um novo algoritmo de assinatura de criptografia pós-quântica (PQC)), CoseSigner.Key retorna null.
Versão introduzida
.NET 10
Comportamento anterior
Anteriormente, CoseSigner.Key não podia ser null. Tinha tipo AsymmetricAlgorithm.
Novo comportamento
A partir do .NET 10, CoseSigner.Key pode ser null. Seu tipo é 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.
Tipo de mudança disruptiva
Esta é uma mudança comportamental , mas também pode afetar a compatibilidade da fonte.
Motivo da mudança
Com a introdução de novos algoritmos de assinatura, como o ML-DSA, O .NET deixou de usar AsymmetricAlgorithm como classe base universal para todos os algoritmos assimétricos. Da mesma forma, CoseSigner agora pode ser construído com uma chave que não deriva de AsymmetricAlgorithm. Neste caso CoseSigner.Key , não pode retornar um AsymmetricAlgorithm representando a chave subjacente e, portanto, retorna null em vez disso.
Ação recomendada
Ainda é aceitável usar CoseSigner.Key, mas certifique-se de lidar com os valores de null.