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.
Aanbevolen actie
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
- System.Security.Cryptography.SafeEvpPKeyHandle.DuplicateHandle()
- ECDsaOpenSsl(SafeEvpPKeyHandle)
- RSAOpenSsl(SafeEvpPKeyHandle)
Elke API die een RSA of ECDsa exemplaar accepteert waaruit afkomstig SafeEvpPKeyHandle is, wordt ook beïnvloed.