Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Das Verhalten von X509Certificate und PublicKey hat sich geändert. Wenn diese Objekte einen Schlüssel ohne Algorithmusparameter enthalten, geben sie jetzt null anstelle eines leeren Arrays zurück.
Eingeführt in Version
.NET 10
Vorheriges Verhalten
Zuvor haben Objekte X509Certificate oder PublicKey, die einen Schlüssel ohne Algorithmusparameter enthielten, beim Zugriff auf die Schlüsselalgorithmusparameter ein leeres Array zurückgegeben.
byte[] parameters = certificate.GetKeyAlgorithmParameters();
// parameters would be an empty array if no algorithm parameters were present
Neues Verhalten
Ab .NET 10 geben X509Certificate oder PublicKey Objekte, die einen Schlüssel ohne Algorithmusparameter enthalten, null zurück, wenn auf die Schlüsselalgorithmusparameter zugegriffen wird.
byte[] parameters = certificate.GetKeyAlgorithmParameters();
// parameters will be null if no algorithm parameters are present
Art der einschneidenden Änderung
Dies ist sowohl eine Änderung des Verhaltens als auch der Quellkompatibilität.
Grund für Änderung
Die Klassen X509Certificate, X509Certificate2 und PublicKey stellen die Informationen zum öffentlichen Schlüssel des Antragstellers zur Verfügung. Eine der Eigenschaften der Subject Public Key Info ist die Parameter für den Algorithmus. Die Informationen zum öffentlichen Schlüssel des Antragstellers sind nicht erforderlich, um Algorithmusparameter zu enthalten. Zuvor wurde dies als leeres Bytearray dargestellt, das ungültig ist ASN.1. Wenn Sie versuchen, sie zu codieren oder zu decodieren, würde dies zu einer Ausnahme führen. Um fehlende Schlüsselparameter deutlicher darzustellen, wird null jetzt zurückgegeben, und die Elemente, die Algorithmusparameter zurückgeben, wurden kommentiert, um nullwerte zurückzugeben.
Empfohlene Aktion
Wenn Sie auf ein Element zugreifen, das Algorithmusparameter der Informationen zum öffentlichen Schlüssel eines Antragsteller zurückgibt, gibt das Element voraussichtlich null zurück. Behandeln Sie den null-Wert dann entsprechend.
byte[] parameters = certificate.GetKeyAlgorithmParameters();
if (parameters == null)
{
// Handle the absence of algorithm parameters
}
Betroffene APIs
- 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