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.
Beteendet hos X509Certificate och PublicKey har ändrats. När dessa objekt innehåller en nyckel utan algoritmparametrar returnerar de nu null i stället för en tom matris.
Version införd
.NET 10
Tidigare beteende
Tidigare, X509Certificate eller PublicKey objekt som innehöll en nyckel utan algoritmparametrar, returnerade en tom matris vid åtkomst till nyckelalgoritmparametrarna.
byte[] parameters = certificate.GetKeyAlgorithmParameters();
// parameters would be an empty array if no algorithm parameters were present
Nytt beteende
Från och med .NET 10 X509Certificate eller PublicKey objekt som innehåller en nyckel utan algoritmparametrar returneras null vid åtkomst till nyckelalgoritmparametrarna.
byte[] parameters = certificate.GetKeyAlgorithmParameters();
// parameters will be null if no algorithm parameters are present
Typ av brytande ändring
Detta är både en beteendemässiga och källkompatibilitet ändras.
Orsak till ändring
Klasserna X509Certificate, X509Certificate2och PublicKey visar information om den offentliga nyckelinformationen för ämnet . En av egenskaperna för Public Key Info för ämne är parametrarna för algoritmen. En Ämnesoffentlig nyckelinformation behöver inte innehålla algoritmparametrar. Tidigare representerades detta som en tom bytematris, som inte är giltig ASN.1. Om du försöker koda eller avkoda det skulle det resultera i ett undantag. För att tydligare representera saknade nyckelparametrar returneras null nu och de medlemmar som returnerar algoritmparametrar har kommenterats för att returnera null-värden.
Rekommenderad åtgärd
När du har åtkomst till en medlem som returnerar information om algoritmparametrarna för ämnesnyckelinformationen, förvänta dig att medlemmen eventuellt returnerar null och hantera null-värdet därefter.
byte[] parameters = certificate.GetKeyAlgorithmParameters();
if (parameters == null)
{
// Handle the absence of algorithm parameters
}
Berörda API:er
- 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