다음을 통해 공유


X509Certificate 및 PublicKey 키 매개 변수는 null일 수 있습니다.

X509CertificatePublicKey의 동작이 변경되었습니다. 이러한 개체에 알고리즘 매개 변수가 없는 키가 포함되어 있으면 이제 빈 배열 대신 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, X509Certificate2PublicKey 클래스는 주체 공개 키 정보대한 정보를 노출합니다. 주체 공개 키 정보 속성 중 하나는 알고리즘에 대한 매개 변수입니다. 주체 공개 키 정보 알고리즘 매개 변수를 포함할 필요는 없습니다. 이전에는 ASN.1이 유효하지 않은 빈 바이트 배열로 표현되었습니다. 인코딩하거나 디코딩하려고 하면 예외가 발생합니다. 결석한 키 매개 변수를 보다 명확하게 나타내기 위해 이제 null 반환되고 알고리즘 매개 변수를 반환하는 멤버에 nullable 값을 반환하도록 주석이 추가되었습니다.

주체 공개 키 정보의 알고리즘 매개 변수에 대한 정보를 반환하는 멤버에 액세스할 때, 해당 멤버가 null을 반환할 가능성이 있음을 예상하고, 그에 따라 null 값을 적절히 처리해야 합니다.

byte[] parameters = certificate.GetKeyAlgorithmParameters();
if (parameters == null)
{
    // Handle the absence of algorithm parameters
}

영향을 받는 API