OpenBSD manual page server

Manual Page Search Parameters

BCMP(3) Library Functions Manual BCMP(3)

bcmp, timingsafe_bcmpcompare byte string

#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);

The () 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 () 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.

memcmp(3), strcasecmp(3), strcmp(3), strcoll(3), strxfrm(3)

The bcmp() function first appeared in 4.2BSD.

The timingsafe_bcmp() function first appeared in OpenBSD 4.9.

July 25, 2011 OpenBSD-5.1