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 반환되고 알고리즘 매개 변수를 반환하는 멤버에 nullable 값을 반환하도록 주석이 추가되었습니다.
권장 작업
주체 공개 키 정보의 알고리즘 매개 변수에 대한 정보를 반환하는 멤버에 액세스할 때, 해당 멤버가 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
.NET