Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Поведение X509Certificate и PublicKey изменилось. Если эти объекты содержат ключ без параметров алгоритма, они теперь возвращают null вместо пустого массива.
Представленная версия
.NET 10
Предыдущее поведение
Ранее объекты X509Certificate или PublicKey, содержащие ключ без параметров алгоритма, возвращали пустой массив при доступе к параметрам алгоритма ключа.
byte[] parameters = certificate.GetKeyAlgorithmParameters();
// parameters would be an empty array if no algorithm parameters were present
Новое поведение
Начиная с .NET 10, объекты X509Certificate или PublicKey, содержащие ключ без параметров алгоритма, возвращают null при доступе к параметрам алгоритма ключа.
byte[] parameters = certificate.GetKeyAlgorithmParameters();
// parameters will be null if no algorithm parameters are present
Тип критического изменения
Это как поведения, так и изменения совместимости источников.
Причина изменения
Классы X509Certificate, X509Certificate2и PublicKey предоставляют сведения о информации о открытом ключе субъекта. Одним из свойств сведений о открытом ключе субъекта являются параметры алгоритма.
сведения о открытом ключе субъекта не требуются для хранения параметров алгоритма. Ранее это было представлено как пустой массив байтов, который не является допустимым ASN.1. Попытка кодирования или декодирования вызовет исключение. Чтобы более четко представить отсутствующие ключевые параметры, теперь возвращается null, а элементы, возвращающие параметры алгоритма, были обозначены для возврата значений, которые могут быть NULL.
Рекомендуемое действие
При доступе к элементу, возвращающему сведения о параметрах алгоритма открытого ключа субъекта, ожидайте, что элемент может возвращать null и обрабатывать значение null соответствующим образом.
byte[] parameters = certificate.GetKeyAlgorithmParameters();
if (parameters == null)
{
// Handle the absence of algorithm parameters
}
Затронутые API
- 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