Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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 PQC (Criptografia Pós-Quantum), 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
Essa é uma alteração comportamental, mas também pode afetar a compatibilidade do código-fonte.
Motivo da alteração
Com a introdução de novos algoritmos de assinatura, como ML-DSA, o .NET se afastou do uso AsymmetricAlgorithm como a 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. Nesse caso CoseSigner.Key , não é possível retornar uma AsymmetricAlgorithm chave subjacente e, portanto, retorna null .
Ação recomendada
Ainda não há problema em usar CoseSigner.Key , mas certifique-se de lidar com null valores.