bntest: make sure that equalBN takes note of negative zero

Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/2335)
This commit is contained in:
Richard Levitte 2017-02-01 00:46:09 +01:00
parent 7730533866
commit 26141babcf

View file

@ -146,8 +146,14 @@ static int equalBN(const char *op, const BIGNUM *expected, const BIGNUM *actual)
if (BN_cmp(expected, actual) == 0)
return 1;
exstr = BN_bn2hex(expected);
actstr = BN_bn2hex(actual);
if (BN_is_zero(expected) && BN_is_negative(expected))
exstr = OPENSSL_strdup("-0");
else
exstr = BN_bn2hex(expected);
if (BN_is_zero(actual) && BN_is_negative(actual))
actstr = OPENSSL_strdup("-0");
else
actstr = BN_bn2hex(actual);
if (exstr == NULL || actstr == NULL)
goto err;