Module: wine Branch: master Commit: f067283f9b41b3e71c870de5c2fff7b9857dc98c URL: https://gitlab.winehq.org/wine/wine/-/commit/f067283f9b41b3e71c870de5c2fff7b...
Author: Hans Leidekker hans@codeweavers.com Date: Mon Dec 11 09:41:57 2023 +0100
bcrypt: Assume we have a public key in key_export_dh_public().
---
dlls/bcrypt/gnutls.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-)
diff --git a/dlls/bcrypt/gnutls.c b/dlls/bcrypt/gnutls.c index 1e5a81d9366..f7df47674c6 100644 --- a/dlls/bcrypt/gnutls.c +++ b/dlls/bcrypt/gnutls.c @@ -1657,7 +1657,7 @@ static NTSTATUS key_export_dh_public( struct key *key, UCHAR *buf, ULONG len, UL BCRYPT_DH_KEY_BLOB *dh_blob = (BCRYPT_DH_KEY_BLOB *)buf; ULONG size = key->u.a.bitlen / 8; gnutls_dh_params_t params; - gnutls_datum_t p, g, y, x = {0}; + gnutls_datum_t p, g, y; UCHAR *dst; int ret = GNUTLS_E_INVALID_REQUEST;
@@ -1667,12 +1667,7 @@ static NTSTATUS key_export_dh_public( struct key *key, UCHAR *buf, ULONG len, UL return STATUS_INTERNAL_ERROR; }
- if (key_data(key)->a.pubkey) - ret = pgnutls_pubkey_export_dh_raw( key_data(key)->a.pubkey, params, &y, 0 ); - else if (key_data(key)->a.privkey) - ret = pgnutls_privkey_export_dh_raw( key_data(key)->a.privkey, params, &y, &x, 0 ); - - if (ret) + if ((ret = pgnutls_pubkey_export_dh_raw( key_data(key)->a.pubkey, params, &y, 0 ))) { pgnutls_perror( ret ); pgnutls_dh_params_deinit( params ); @@ -1682,7 +1677,7 @@ static NTSTATUS key_export_dh_public( struct key *key, UCHAR *buf, ULONG len, UL if ((ret = pgnutls_dh_params_export_raw( params, &p, &g, NULL )) < 0) { pgnutls_perror( ret ); - free( y.data ); free( x.data ); + free( y.data ); pgnutls_dh_params_deinit( params ); return STATUS_INTERNAL_ERROR; } @@ -1699,7 +1694,7 @@ static NTSTATUS key_export_dh_public( struct key *key, UCHAR *buf, ULONG len, UL dh_blob->cbKey = size; }
- free( p.data ); free( g.data ); free( y.data ); free( x.data ); + free( p.data ); free( g.data ); free( y.data ); return STATUS_SUCCESS; }