mirror of
https://github.com/openssl/openssl.git
synced 2024-11-21 01:15:20 +08:00
[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:
parent
926c698c6f
commit
a644cb7c1c
@ -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);
|
||||
|
||||
|
@ -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);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user