diff --git a/library/bignum_core.c b/library/bignum_core.c index 13fc074a6d..bb6e7cd3bc 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -300,19 +300,8 @@ mbedtls_mpi_uint mbedtls_mpi_core_add_if( mbedtls_mpi_uint *A, { mbedtls_mpi_uint c = 0; - /* MSVC has a warning about unary minus on unsigned integer types, - * but this is well-defined and precisely what we want to do here. */ -#if defined(_MSC_VER) -#pragma warning( push ) -#pragma warning( disable : 4146 ) -#endif - - /* all-bits 1 if cond is 1, all-bits 0 if cond is 0 */ - const mbedtls_mpi_uint mask = -(mbedtls_mpi_uint)cond; - -#if defined(_MSC_VER) -#pragma warning( pop ) -#endif + /* all-bits 0 if cond is 0, all-bits 1 if cond is non-0 */ + const mbedtls_mpi_uint mask = mbedtls_ct_mpi_uint_mask( cond ); for( size_t i = 0; i < limbs; i++ ) {