The branch master has been updated via 383e9ade2b0e8333c8a5907fe4ca73d38f9ca465 (commit) via 24dc7fe0c008f1261cd34522f7fa2c23a2dedbe9 (commit) via ceac1975357f9a716e4c7f0fee61511bd1bf7034 (commit) via 26141babcfad85469383c3919dcff5713fecad16 (commit) from 773053386656ab1198e5692b9a63d21942f3adfb (commit)
- Log ----------------------------------------------------------------- commit 383e9ade2b0e8333c8a5907fe4ca73d38f9ca465 Author: Richard Levitte <levi...@openssl.org> Date: Wed Feb 1 00:48:38 2017 +0100 bntests.txt: add a couple of checks of possibly negative zero Reviewed-by: Rich Salz <rs...@openssl.org> (Merged from https://github.com/openssl/openssl/pull/2335) commit 24dc7fe0c008f1261cd34522f7fa2c23a2dedbe9 Author: Richard Levitte <levi...@openssl.org> Date: Wed Feb 1 00:47:30 2017 +0100 bntest: do not stop on first fautl encountered Reviewed-by: Rich Salz <rs...@openssl.org> (Merged from https://github.com/openssl/openssl/pull/2335) commit ceac1975357f9a716e4c7f0fee61511bd1bf7034 Author: Richard Levitte <levi...@openssl.org> Date: Wed Feb 1 00:46:58 2017 +0100 bntest: make sure file_rshift tests BN_rshift1 as well when appropriate Reviewed-by: Rich Salz <rs...@openssl.org> (Merged from https://github.com/openssl/openssl/pull/2335) commit 26141babcfad85469383c3919dcff5713fecad16 Author: Richard Levitte <levi...@openssl.org> Date: Wed Feb 1 00:46:09 2017 +0100 bntest: make sure that equalBN takes note of negative zero Reviewed-by: Rich Salz <rs...@openssl.org> (Merged from https://github.com/openssl/openssl/pull/2335) ----------------------------------------------------------------------- Summary of changes: test/bntest.c | 36 +++++++++++++++++++++++------------- test/bntests.txt | 9 +++++++++ 2 files changed, 32 insertions(+), 13 deletions(-) diff --git a/test/bntest.c b/test/bntest.c index f9e3686..0c15a12 100644 --- a/test/bntest.c +++ b/test/bntest.c @@ -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; @@ -1149,21 +1155,28 @@ static int file_rshift(STANZA *s) BIGNUM *rshift = getBN(s, "RShift"); BIGNUM *ret = BN_new(); int n = 0; - int st = 0; + int errcnt = 1; if (a == NULL || rshift == NULL || ret == NULL || !getint(s, &n, "N")) goto err; + errcnt = 0; if (!BN_rshift(ret, a, n) || !equalBN("A >> N", rshift, ret)) - goto err; + errcnt++; + + /* If N == 1, try with rshift1 as well */ + if (n == 1) { + if (!BN_rshift1(ret, a) + || !equalBN("A >> 1 (rshift1)", rshift, ret)) + errcnt++; + } - st = 1; err: BN_free(a); BN_free(rshift); BN_free(ret); - return st; + return errcnt == 0; } static int file_square(STANZA *s) @@ -2182,7 +2195,7 @@ static int file_test_run(STANZA *s) static int file_tests() { STANZA s; - int linesread = 0, result = 0; + int linesread = 0, errcnt = 0; /* Read test file. */ memset(&s, 0, sizeof(s)); @@ -2190,17 +2203,14 @@ static int file_tests() if (s.numpairs == 0) continue; if (!file_test_run(&s)) { - if (result == 0) - fprintf(stderr, "Test at %d failed\n", s.start); - goto err; + fprintf(stderr, "Test at %d failed\n", s.start); + errcnt++; } clearstanza(&s); s.start = linesread; } - result = 1; -err: - return result; + return errcnt == 0; } int test_main(int argc, char *argv[]) diff --git a/test/bntests.txt b/test/bntests.txt index 9603f00..c1ffb2d 100644 --- a/test/bntests.txt +++ b/test/bntests.txt @@ -4643,6 +4643,10 @@ N = 64 # # These test vectors satisfy A / 2^N = RShift, rounding towards zero. +Rshift = 0 +A = -1 +N = 1 + RShift = 6ce746ffa7979ce10b751cd2308402a95d00d596cd97b36380 A = d9ce8dff4f2f39c216ea39a461080552ba01ab2d9b2f66c701 N = 1 @@ -5967,6 +5971,11 @@ B = -542fb814f45924aa09a16f2a6 # These test vectors satisfy Quotient = A / B, rounded towards zero, and # Remainder = A - B * Quotient. +Quotient = 0 +Remainder = -1 +A = -1 +B = 2 + Quotient = 1 Remainder = 0 A = 8cdaaa7c422f3c2bb0ace2da7d7ff151e5bdefb23e6426cf3e6b21491e6e80e977bfa6c65931a8dee31fc7992c0c801d5d7c _____ openssl-commits mailing list To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-commits