SafeEvpPKeyHandle.DuplicateHandle aumenta i riferimenti dell'handle
Insieme al lavoro per abilitare il SafeEvpPKeyHandle.DuplicateHandle() supporto dei provider OpenSSL, è stata apportata una modifica al metodo che influisce sui ECDsaOpenSsl costruttori e RSAOpenSsl che accettano SafeEvpPKeyHandle. Le modifiche esterne dell'handle passato ora influiscono anche sull'handle archiviato nelle istanze di tali classi.
Comportamento precedente
DuplicateHandle() ha creato una nuova istanza di EVP_PKEY
. Le modifiche apportate alla chiave duplicata, ovvero tramite chiamate dirette alle API OpenSSL, non influiscono sulla chiave originale. SafeEvpPKeyHandle.DuplicateHandle
è stato chiamato dai costruttori di ECDsaOpenSsl e RSAOpenSsl che accettano SafeEvpPKeyHandle.
Nuovo comportamento
DuplicateHandle() incrementa il conteggio dei riferimenti dell'esistente EVP_PKEY
e restituisce un handle alla stessa chiave. Ciò significa che le chiamate esterne alle API OpenSSL che modificano EVP_PKEY
ora influiscono anche sulle istanze del duplicato di SafeEvpPKeyHandle. Tali API includono ECDsaOpenSsl e RSAOpenSsl le istanze create da tali handle.
Versione introdotta
.NET 9 Anteprima 7
Tipo di modifica che causa un'interruzione
Questa è una modifica funzionale.
Motivo della modifica
Questa modifica è stata apportata per abilitare il supporto dei provider OpenSSL. Come effetto secondario, ci sono anche alcuni miglioramenti delle prestazioni.
Azione consigliata
Evitare modifiche di EVP_PKEY
passate alle API .NET. Se non è possibile evitare modifiche a EVP_PKEY
, creare personalmente una copia di EVP_PKEY
, ovvero copiare i parametri nella nuova istanza di EVP_PKEY
.
API interessate
- System.Security.Cryptography.SafeEvpPKeyHandle.DuplicateHandle()
- ECDsaOpenSsl(SafeEvpPKeyHandle)
- RSAOpenSsl(SafeEvpPKeyHandle)
Anche ogni API che accetta un'istanza RSA o ECDsa che ha origine da SafeEvpPKeyHandle è interessata.