File constant_time.h

Functions

int mbedtls_ct_memcmp(const void *a, const void *b, size_t n)

Constant-time functions Constant-time buffer comparison without branches.

This is equivalent to the standard memcmp function, but is likely to be compiled to code using bitwise operations rather than a branch, such that the time taken is constant w.r.t. the data pointed to by a and b, and w.r.t. whether a and b are equal or not. It is not constant-time w.r.t. n .

This function can be used to write constant-time code by replacing branches with bit operations using masks.

Parameters
  • a – Pointer to the first buffer, containing at least n bytes. May not be NULL.

  • b – Pointer to the second buffer, containing at least n bytes. May not be NULL.

  • n – The number of bytes to compare.

Returns

Zero if the contents of the two buffers are the same, otherwise non-zero.