Move implementation specific comment

This comment is about how the functions are implemented, not about their
public interface, so it doesn't belong in the header file.
It applies to everything in constant_time.c so moved there.

Signed-off-by: Gabor Mezei <gabor.mezei@arm.com>
This commit is contained in:
Gabor Mezei 2021-10-18 16:09:41 +02:00
parent 2c5ed2244b
commit 3c38b6e9e1
No known key found for this signature in database
GPG key ID: 106F5A41ECC305BD
2 changed files with 5 additions and 38 deletions

View file

@ -17,6 +17,11 @@
* limitations under the License.
*/
/*
* The following functiona are implemented without using comparison operators, as those
* might be translated to branches by some compilers on some platforms.
*/
#include "common.h"
#include "constant_time.h"
#include "mbedtls/error.h"

View file

@ -38,9 +38,6 @@
* This function can be used to write constant-time code by replacing branches
* with bit operations using masks.
*
* This function is implemented without using comparison operators, as those
* might be translated to branches by some compilers on some platforms.
*
* \param a Pointer to the first buffer.
* \param b Pointer to the second buffer.
* \param n The number of bytes to compare in the buffer.
@ -59,9 +56,6 @@ int mbedtls_cf_memcmp( const void *a,
* This function can be used to write constant-time code by replacing branches
* with bit operations using masks.
*
* This function is implemented without using comparison operators, as those
* might be translated to branches by some compilers on some platforms.
*
* \param value The value to analyze.
*
* \return Zero if \p value is zero, otherwise all-bits-one.
@ -75,9 +69,6 @@ unsigned mbedtls_cf_uint_mask( unsigned value );
* This function can be used to write constant-time code by replacing branches
* with bit operations using masks.
*
* This function is implemented without using comparison operators, as those
* might be translated to branches by some compilers on some platforms.
*
* \param value The value to analyze.
*
* \return Zero if \p value is zero, otherwise all-bits-one.
@ -93,9 +84,6 @@ size_t mbedtls_cf_size_mask( size_t value );
* This function can be used to write constant-time code by replacing branches
* with bit operations using masks.
*
* This function is implemented without using comparison operators, as those
* might be translated to branches by some compilers on some platforms.
*
* \param value The value to analyze.
*
* \return Zero if \p value is zero, otherwise all-bits-one.
@ -111,9 +99,6 @@ mbedtls_mpi_uint mbedtls_cf_mpi_uint_mask( mbedtls_mpi_uint value );
* This function can be used to write constant-time code by replacing branches
* with bit operations using masks.
*
* This function is implemented without using comparison operators, as those
* might be translated to branches by some compilers on some platforms.
*
* \param x The first value to analyze.
* \param y The second value to analyze.
*
@ -129,9 +114,6 @@ size_t mbedtls_cf_size_mask_ge( size_t x,
* This is equivalent to \p x == \p y, but is likely to be compiled
* to code using bitwise operation rather than a branch.
*
* This function is implemented without using comparison operators, as those
* might be translated to branches by some compilers on some platforms.
*
* \param x The first value to analyze.
* \param y The second value to analyze.
*
@ -146,9 +128,6 @@ unsigned mbedtls_cf_size_bool_eq( size_t x,
* This is equivalent to \p x > \p y, but is likely to be compiled
* to code using bitwise operation rather than a branch.
*
* This function is implemented without using comparison operators, as those
* might be translated to branches by some compilers on some platforms.
*
* \param x The first value to analyze.
* \param y The second value to analyze.
*
@ -164,9 +143,6 @@ unsigned mbedtls_cf_size_gt( size_t x,
* This is equivalent to \p x < \p y, but is likely to be compiled
* to code using bitwise operation rather than a branch.
*
* This function is implemented without using comparison operators, as those
* might be translated to branches by some compilers on some platforms.
*
* \param x The first value to analyze.
* \param y The second value to analyze.
*
@ -182,9 +158,6 @@ unsigned mbedtls_cf_mpi_uint_lt( const mbedtls_mpi_uint x,
* This is equivalent to `condition ? if1 : if0`, but is likely to be compiled
* to code using bitwise operation rather than a branch.
*
* This function is implemented without using comparison operators, as those
* might be translated to branches by some compilers on some platforms.
*
* \param condition Condition to test.
* \param if1 Value to use if \p condition is nonzero.
* \param if0 Value to use if \p condition is zero.
@ -200,9 +173,6 @@ unsigned mbedtls_cf_uint_if( unsigned condition,
* This is equivalent to `condition ? if1 : if0`, but is likely to be compiled
* to code using bitwise operation rather than a branch.
*
* This function is implemented without using comparison operators, as those
* might be translated to branches by some compilers on some platforms.
*
* \param condition Condition to test.
* \param if1 Value to use if \p condition is nonzero.
* \param if0 Value to use if \p condition is zero.
@ -218,8 +188,6 @@ size_t mbedtls_cf_size_if( unsigned condition,
* This is functionally equivalent to `condition ? if1 : if0` but uses only bit
* operations in order to avoid branches.
*
* This function is implemented without using comparison operators, as those
* might be translated to branches by some compilers on some platforms.
*
* \param condition Condition to test.
* \param if1 The first sign; must be either +1 or -1.
@ -237,9 +205,6 @@ int mbedtls_cf_cond_select_sign( unsigned char condition,
* This is equivalent to `if ( condition ) dest = src`, but is likely
* to be compiled to code using bitwise operation rather than a branch.
*
* This function is implemented without using comparison operators, as those
* might be translated to branches by some compilers on some platforms.
*
* \param n \p dest and \p src must be arrays of limbs of size n.
* \param dest The MPI to conditionally assign to. This must point
* to an initialized MPI.
@ -280,9 +245,6 @@ void mbedtls_cf_mem_move_to_left( void *start,
* This is equivalent to `if ( c1 == c2 ) memcpy(dst, src, len)`, but is likely
* to be compiled to code using bitwise operation rather than a branch.
*
* This function is implemented without using comparison operators, as those
* might be translated to branches by some compilers on some platforms.
*
* \param dest The pointer to conditionally copy to.
* \param src The pointer to copy from.
* \param len The number of bytes to copy.