Hans Leidekker (@hans) commented about dlls/bcrypt/gnutls.c:
+ if ((ret = pgnutls_pubkey_init( &pubkey ))) + { + pgnutls_perror( ret ); + return STATUS_INTERNAL_ERROR; + } + if ((ret = pgnutls_pubkey_import_privkey( pubkey, key_data(params->key)->a.privkey, 0, 0 ))) + { + pgnutls_perror( ret ); + pgnutls_pubkey_deinit( pubkey ); + return STATUS_INTERNAL_ERROR; + } + } + + ret = pgnutls_pubkey_encrypt_data(pubkey, 0, &d, &e); + if (pubkey != key_data(params->key)->a.pubkey) + pgnutls_pubkey_deinit( pubkey ); Why not store the public key? That would be more efficient if key_asymmetric_encrypt() is called more than once.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/1820#note_19671