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 8ec2a953af
commit cff9e6e03d

View file

@ -999,7 +999,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;
*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
@ -1011,7 +1011,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] )
& ( 1 - X_is_negative );
*ret |= cond & ( 1 - done );
done |= cond & ( 1 - done );
done |= cond;
}
return( 0 );