다음을 통해 공유


SafeEvpPKeyHandle.DuplicateHandle은 핸들을 상위 참조함

OpenSSL 공급자 지원을 사용하도록 설정하는 작업과 함께 SafeEvpPKeyHandle을 사용하는 ECDsaOpenSslRSAOpenSsl 생성자에 영향을 주는 SafeEvpPKeyHandle.DuplicateHandle() 메서드가 변경되었습니다. 이제 전달된 핸들의 외부 수정 내용이 해당 클래스의 인스턴스에 저장된 핸들에도 영향을 줍니다.

이전 동작

DuplicateHandle()은 새 EVP_PKEY 인스턴스를 만들었습니다. 중복된 키(즉, OpenSSL API에 대한 직접 호출을 통해)를 수정해도 원래 키에는 영향을 주지 않았습니다. SafeEvpPKeyHandle.DuplicateHandleSafeEvpPKeyHandle을 사용하는 ECDsaOpenSslRSAOpenSsl 생성자에 의해 호출되었습니다.

새 동작

DuplicateHandle()은 기존 EVP_PKEY의 참조 수를 늘리고 동일한 키에 대한 핸들을 반환합니다. 즉, EVP_PKEY을 수정하는 OpenSSL API에 대한 외부 호출도 중복된 SafeEvpPKeyHandle의 인스턴스에 영향을 줍니다. 이러한 API에는 이러한 핸들에서 만든 ECDsaOpenSslRSAOpenSsl 인스턴스가 포함됩니다.

도입된 버전

.NET 9 미리 보기 7

호환성이 손상되는 변경의 형식

이 변경 사항은 동작 변경입니다.

변경 이유

OpenSSL 공급자 지원을 사용하도록 하기 위해 이 변경이 수행되었습니다. 부차적인 효과로 성능도 일부 향상되었습니다.

.NET API에 전달된 EVP_PKEY는 수정하지 않도록 합니다 EVP_PKEY 수정을 방지할 수 없는 경우 EVP_PKEY 복사본을 직접 만듭니다(즉, 새 EVP_PKEY 인스턴스에 매개 변수 복사).

영향을 받는 API

SafeEvpPKeyHandle에서 시작된 RSA 또는 ECDsa 인스턴스를 수락하는 모든 API도 영향을 받습니다.