Fix OSSL_PARAM_set_BN() to fill the given buffer correctly.
authorRichard Levitte <levitte@openssl.org>
Fri, 1 Nov 2019 19:44:14 +0000 (20:44 +0100)
committerPatrick Steuer <patrick.steuer@de.ibm.com>
Sun, 3 Nov 2019 10:19:04 +0000 (11:19 +0100)
commit0f73e719c6ca6c2e955e6c08a3ab171642dc2dc0
treed68fb0d72915e9dc4eb40d26416d06508cf7f180
parent2321c25dec8402c4bd48bac0edd3c2ef1ee4b6ad
Fix OSSL_PARAM_set_BN() to fill the given buffer correctly.

OSSL_PARAM_set_BN() filled the buffer from the left with as many bytes
as that the BIGNUM takes, regardless of buffer size or native
endianness.  This was due to BN_bn2nativepad() being given the size of
the BIGNUM rather than the size of the buffer (which meant it never
had to pad anything).

The fix is to given BN_bn2nativepad() the size of the buffer instead.
This aligns well with the corresponding _set_ functions for native
integer types work.

Reviewed-by: Patrick Steuer <patrick.steuer@de.ibm.com>
(Merged from https://github.com/openssl/openssl/pull/10326)
crypto/params.c