提交 ceac1975 编写于 作者: R Richard Levitte

bntest: make sure file_rshift tests BN_rshift1 as well when appropriate

Reviewed-by: NRich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/2335)
上级 26141bab
...@@ -1155,21 +1155,28 @@ static int file_rshift(STANZA *s) ...@@ -1155,21 +1155,28 @@ static int file_rshift(STANZA *s)
BIGNUM *rshift = getBN(s, "RShift"); BIGNUM *rshift = getBN(s, "RShift");
BIGNUM *ret = BN_new(); BIGNUM *ret = BN_new();
int n = 0; int n = 0;
int st = 0; int errcnt = 1;
if (a == NULL || rshift == NULL || ret == NULL || !getint(s, &n, "N")) if (a == NULL || rshift == NULL || ret == NULL || !getint(s, &n, "N"))
goto err; goto err;
errcnt = 0;
if (!BN_rshift(ret, a, n) if (!BN_rshift(ret, a, n)
|| !equalBN("A >> N", rshift, ret)) || !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: err:
BN_free(a); BN_free(a);
BN_free(rshift); BN_free(rshift);
BN_free(ret); BN_free(ret);
return st; return errcnt == 0;
} }
static int file_square(STANZA *s) static int file_square(STANZA *s)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册