X509Certificate- och PublicKey-nyckelparametrar kan vara null

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.

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