NAME
bcmp
,
timingsafe_bcmp
—
compare byte string
SYNOPSIS
#include
<string.h>
int
bcmp
(const
void *b1, const void
*b2, size_t
len);
int
timingsafe_bcmp
(const
void *b1, const void
*b2, size_t
len);
DESCRIPTION
The
bcmp
()
function compares byte string b1 against byte string
b2, returning zero if they are identical, non-zero
otherwise. Both strings are assumed to be len bytes
long. Zero-length strings are always identical.
The strings may overlap.
The
timingsafe_bcmp
()
function has the same semantics as bcmp
(), but its
running time is independent of the contents of b1 and
b2, making it safe to use for comparing secret values
such as cryptographic MACs. In contrast, bcmp
()
returns after finding the first differing byte, making it vulnerable to
timing attacks.
SEE ALSO
HISTORY
The bcmp
() function first appeared in
4.2BSD.
The timingsafe_bcmp
() function first
appeared in OpenBSD 4.9.