[crypto/bn] BN_consttime_swap: remove superfluous early exit

Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Paul Dale <pauli@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/18518)
This commit is contained in:
Billy Brumley 2022-06-10 00:03:23 +03:00 committed by Tomas Mraz
parent 926c698c6f
commit a644cb7c1c
2 changed files with 15 additions and 3 deletions

View File

@ -910,9 +910,6 @@ void BN_consttime_swap(BN_ULONG condition, BIGNUM *a, BIGNUM *b, int nwords)
BN_ULONG t;
int i;
if (a == b)
return;
bn_wcheck_size(a, nwords);
bn_wcheck_size(b, nwords);

View File

@ -171,6 +171,11 @@ static int test_swap(void)
|| !equalBN("swap", b, c))
goto err;
/* regular swap: same pointer */
BN_swap(a, a);
if (!equalBN("swap with same pointer", a, d))
goto err;
/* conditional swap: true */
cond = 1;
BN_consttime_swap(cond, a, b, top);
@ -178,6 +183,11 @@ static int test_swap(void)
|| !equalBN("cswap true", b, d))
goto err;
/* conditional swap: true, same pointer */
BN_consttime_swap(cond, a, a, top);
if (!equalBN("cswap true", a, c))
goto err;
/* conditional swap: false */
cond = 0;
BN_consttime_swap(cond, a, b, top);
@ -185,6 +195,11 @@ static int test_swap(void)
|| !equalBN("cswap false", b, d))
goto err;
/* conditional swap: false, same pointer */
BN_consttime_swap(cond, a, a, top);
if (!equalBN("cswap false", a, c))
goto err;
/* same tests but checking flag swap */
BN_set_flags(a, BN_FLG_CONSTTIME);