mbedtls_mpi_lt_mpi_ct: simplify condition

In the case of *ret we might need to preserve a 0 value throughout the
loop and therefore we need an extra condition to protect it from being
overwritten.

The value of done is always 1 after *ret has been set and does not need
to be protected from overwriting. Therefore in this case the extra
condition can be removed.
This commit is contained in:
Janos Follath 2019-10-28 12:37:21 +00:00
parent 5e614cef15
commit c50e6d5edb

View File

@ -1232,7 +1232,7 @@ int mbedtls_mpi_lt_mpi_ct( const mbedtls_mpi *X, const mbedtls_mpi *Y,
*/ */
cond = ct_lt_mpi_uint( Y->p[i - 1], X->p[i - 1] ) & X_is_negative; cond = ct_lt_mpi_uint( Y->p[i - 1], X->p[i - 1] ) & X_is_negative;
*ret |= cond & ( 1 - done ); *ret |= cond & ( 1 - done );
done |= cond & ( 1 - done ); done |= cond;
/* /*
* If X->p[i - 1] < Y->p[i - 1] and both X and Y are positive, then * If X->p[i - 1] < Y->p[i - 1] and both X and Y are positive, then
@ -1244,7 +1244,7 @@ int mbedtls_mpi_lt_mpi_ct( const mbedtls_mpi *X, const mbedtls_mpi *Y,
cond = ct_lt_mpi_uint( X->p[i - 1], Y->p[i - 1] ) cond = ct_lt_mpi_uint( X->p[i - 1], Y->p[i - 1] )
& ( 1 - X_is_negative ); & ( 1 - X_is_negative );
*ret |= cond & ( 1 - done ); *ret |= cond & ( 1 - done );
done |= cond & ( 1 - done ); done |= cond;
} }
return( 0 ); return( 0 );