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.
O comportamento de X509Certificate e PublicKey mudou. Quando esses objetos contêm uma chave sem parâmetros de algoritmo, eles agora retornam null em vez de uma matriz vazia.
Versão introduzida
.NET 10
Comportamento anterior
Anteriormente, X509Certificate ou PublicKey objetos que continham uma chave sem parâmetros de algoritmo retornavam uma matriz vazia ao acessar os parâmetros do algoritmo de chave.
byte[] parameters = certificate.GetKeyAlgorithmParameters();
// parameters would be an empty array if no algorithm parameters were present
Novo comportamento
A partir do .NET 10, X509Certificate ou PublicKey objetos que contêm uma chave sem parâmetros de algoritmo retornam null ao acessar os parâmetros do algoritmo de chave.
byte[] parameters = certificate.GetKeyAlgorithmParameters();
// parameters will be null if no algorithm parameters are present
Tipo de mudança de rutura
Esta é uma comportamental e compatibilidade de fonte mudança.
Motivo da mudança
As classes X509Certificate, X509Certificate2e PublicKey expõem informações sobre o Subject Public Key Info. Uma das propriedades do Subject Public Key Info são os parâmetros para o algoritmo. Informações da Chave Pública do Sujeito não precisam conter parâmetros de algoritmo. Anteriormente, isso era representado como uma matriz de bytes vazia, que não é válida ASN.1. Tentar codificá-lo ou decodificá-lo resultaria em uma exceção. Para representar mais claramente parâmetros de chave ausentes, null agora é retornado, e os membros que retornam parâmetros de algoritmo foram anotados para retornar valores anuláveis.
Ação recomendada
Ao acessar um membro que retorna informações sobre os parâmetros do algoritmo de informações de chave pública de um assunto, espere que o membro possivelmente retorne null e manipule o valor null de acordo.
byte[] parameters = certificate.GetKeyAlgorithmParameters();
if (parameters == null)
{
// Handle the absence of algorithm parameters
}
APIs afetadas
- System.Security.Cryptography.X509Certificates.X509Certificate.GetKeyAlgorithmParameters()
- System.Security.Cryptography.X509Certificates.X509Certificate.GetKeyAlgorithmParametersString()
- System.Security.Cryptography.X509Certificates.PublicKey.PublicKey(Oid, AsnEncodedData, AsnEncodedData)
- System.Security.Cryptography.X509Certificates.PublicKey.EncodedParameters