SafeEvpPKeyHandle.DuplicateHandle によるハンドルの up-ref
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 Preview 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