The timingsafe_bcmp() and
timingsafe_memcmp() functions
lexicographically compare the first len bytes
(each interpreted as an unsigned char)
pointed to by b1 and
b2.

Additionally, their running times are independent of the byte sequences
compared, making them safe to use for comparing secret values such as
cryptographic MACs. In contrast,
bcmp(3) and
memcmp(3) may short-circuit
after finding the first differing byte.

The timingsafe_bcmp() function returns 0 or
not zero if the byte sequence pointed to by
b1 compares equal to or not equal to
(respectively) the byte sequence pointed to by
b2.

The timingsafe_memcmp() function returns a
negative value, 0, or positive value if the byte sequence pointed to by
b1 compares less than, equal to, or greater
than (respectively) the byte sequence pointed to by
b2.