constant_time.h
stddef.h
constant_time.h
stddef.h
int int mbedtls_ct_memcmp (const void *a, const void *b, size_t n) 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.

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.

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

    /*
    *CopyrightTheMbedTLSContributors
    *SPDX-License-Identifier:Apache-2.0ORGPL-2.0-or-later
    */

    #ifndefMBEDTLS_CONSTANT_TIME_H
    #defineMBEDTLS_CONSTANT_TIME_H

    #include<stddef.h>

    intmbedtls_ct_memcmp(constvoid*a,
    constvoid*b,
    size_tn);

    #endif/*MBEDTLS_CONSTANT_TIME_H*/