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.
O comportamento de X509Certificate e PublicKey foi alterado. 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 de 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, objetos X509Certificate ou PublicKey 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 disruptiva
Essa é uma alteração comportamental e de compatibilidade de origem.
Motivo da alteração
As X509Certificate, X509Certificate2 e PublicKey classes expõem informações sobre o Subject Public Key Info. Uma das propriedades das Informações de chave pública do assunto são os parâmetros do algoritmo. Uma informação de chave pública de assunto não é necessária para conter parâmetros de algoritmo. Anteriormente, isso era representado como uma matriz de bytes vazia, o que não é válido em ASN.1. Tentar codificar 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 de algoritmo de informações de chave pública de um assunto, espere que o membro possivelmente retorne null e manipule o valor null adequadamente.
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