[PATCH v2 5/7] bcrypt: Pad exported datums in key_export_ecc().
From: Paul Gofman <pgofman(a)codeweavers.com> Signed-off-by: Paul Gofman <pgofman(a)codeweavers.com> Signed-off-by: Hans Leidekker <hans(a)codeweavers.com> --- dlls/bcrypt/gnutls.c | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/dlls/bcrypt/gnutls.c b/dlls/bcrypt/gnutls.c index 52c70d61cf6..5bddc621f80 100644 --- a/dlls/bcrypt/gnutls.c +++ b/dlls/bcrypt/gnutls.c @@ -1000,7 +1000,7 @@ static NTSTATUS CDECL key_export_ecc( struct key *key, UCHAR *buf, ULONG len, UL gnutls_ecc_curve_t curve; gnutls_datum_t x, y, d; DWORD magic, size; - UCHAR *src, *dst; + UCHAR *dst; int ret; switch (key->alg_id) @@ -1040,19 +1040,13 @@ static NTSTATUS CDECL key_export_ecc( struct key *key, UCHAR *buf, ULONG len, UL ecc_blob->cbKey = size; dst = (UCHAR *)(ecc_blob + 1); - if (x.size == size + 1) src = x.data + 1; - else src = x.data; - memcpy( dst, src, size ); - + export_gnutls_datum( dst, size, &x, NULL ); dst += size; - if (y.size == size + 1) src = y.data + 1; - else src = y.data; - memcpy( dst, src, size ); + export_gnutls_datum( dst, size, &y, NULL ); dst += size; - if (d.size == size + 1) src = d.data + 1; - else src = d.data; - memcpy( dst, src, size ); + + export_gnutls_datum( dst, size, &d, NULL ); } free( x.data ); free( y.data ); free( d.data ); -- 2.29.2
participants (1)
-
Hans Leidekker