SafeEvpPKeyHandle.DuplicateHandle은 핸들을 상위 참조함
OpenSSL 공급자 지원을 사용하도록 설정하는 작업과 함께 SafeEvpPKeyHandle을 사용하는 ECDsaOpenSsl 및 RSAOpenSsl 생성자에 영향을 주는 SafeEvpPKeyHandle.DuplicateHandle() 메서드가 변경되었습니다. 이제 전달된 핸들의 외부 수정 내용이 해당 클래스의 인스턴스에 저장된 핸들에도 영향을 줍니다.
이전 동작
DuplicateHandle()은 새 EVP_PKEY
인스턴스를 만들었습니다. 중복된 키(즉, OpenSSL API에 대한 직접 호출을 통해)를 수정해도 원래 키에는 영향을 주지 않았습니다. SafeEvpPKeyHandle.DuplicateHandle
은 SafeEvpPKeyHandle을 사용하는 ECDsaOpenSsl 및 RSAOpenSsl 생성자에 의해 호출되었습니다.
새 동작
DuplicateHandle()은 기존 EVP_PKEY
의 참조 수를 늘리고 동일한 키에 대한 핸들을 반환합니다. 즉, EVP_PKEY
을 수정하는 OpenSSL API에 대한 외부 호출도 중복된 SafeEvpPKeyHandle의 인스턴스에 영향을 줍니다. 이러한 API에는 이러한 핸들에서 만든 ECDsaOpenSsl 및 RSAOpenSsl 인스턴스가 포함됩니다.
도입된 버전
.NET 9 미리 보기 7
호환성이 손상되는 변경의 형식
이 변경 사항은 동작 변경입니다.
변경 이유
OpenSSL 공급자 지원을 사용하도록 하기 위해 이 변경이 수행되었습니다. 부차적인 효과로 성능도 일부 향상되었습니다.
권장 작업
.NET API에 전달된 EVP_PKEY
는 수정하지 않도록 합니다 EVP_PKEY
수정을 방지할 수 없는 경우 EVP_PKEY
복사본을 직접 만듭니다(즉, 새 EVP_PKEY
인스턴스에 매개 변수 복사).
영향을 받는 API
- System.Security.Cryptography.SafeEvpPKeyHandle.DuplicateHandle()
- ECDsaOpenSsl(SafeEvpPKeyHandle)
- RSAOpenSsl(SafeEvpPKeyHandle)
SafeEvpPKeyHandle에서 시작된 RSA 또는 ECDsa 인스턴스를 수락하는 모든 API도 영향을 받습니다.
.NET