Condividi tramite


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.

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

Anche ogni API che accetta un'istanza RSA o ECDsa che ha origine da SafeEvpPKeyHandle è interessata.