Delen via


SafeEvpPKeyHandle.DuplicateHandle up-refs de ingang

Samen met het werk om ondersteuning voor OpenSSL-providers mogelijk te maken, is er een wijziging aangebracht in de SafeEvpPKeyHandle.DuplicateHandle() methode die van invloed is op de ECDsaOpenSsl en RSAOpenSsl constructors die een SafeEvpPKeyHandle. Externe wijzigingen van de doorgegeven ingang zijn nu ook van invloed op de ingang die is opgeslagen in exemplaren van deze klassen.

Vorig gedrag

DuplicateHandle() er is een nieuw EVP_PKEY exemplaar gemaakt. Wijzigingen in de gedupliceerde sleutel (dat wil gezegd, via directe aanroepen naar OpenSSL-API's) hebben geen invloed op de oorspronkelijke sleutel. SafeEvpPKeyHandle.DuplicateHandle werd aangeroepen door de constructors van ECDsaOpenSsl en RSAOpenSsl die nemen een SafeEvpPKeyHandle.

Nieuw gedrag

DuplicateHandle() hiermee wordt het aantal verwijzingen van het bestaande EVP_PKEY aantal verhoogd en wordt een ingang geretourneerd naar dezelfde sleutel. Dat betekent dat externe aanroepen naar OpenSSL-API's die nu worden gewijzigd EVP_PKEY , ook van invloed zijn op exemplaren van de gedupliceerde SafeEvpPKeyHandle. Deze API's omvatten ECDsaOpenSsl en RSAOpenSsl exemplaren die zijn gemaakt op basis van dergelijke ingangen.

Versie geïntroduceerd

.NET 9 Preview 7

Type wijziging die fouten veroorzaken

Deze wijziging is een gedragswijziging.

Reden voor wijziging

Deze wijziging is aangebracht om ondersteuning voor OpenSSL-providers in te schakelen. Als neveneffect zijn er ook enkele prestatieverbeteringen.

Vermijd wijzigingen van EVP_PKEY doorgegeven aan .NET-API's. Als u wijzigingen niet kunt vermijden EVP_PKEY, maakt u een kopie van EVP_PKEY uzelf (dat wil gezegd, kopieert u parameters naar het nieuwe EVP_PKEY exemplaar).

Betrokken API's

Elke API die een RSA of ECDsa exemplaar accepteert waaruit afkomstig SafeEvpPKeyHandle is, wordt ook beïnvloed.