Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
TIMINGSAFE_BCMP(3)	    Library Functions Manual	    TIMINGSAFE_BCMP(3)

NAME
       timingsafe_bcmp,	timingsafe_memcmp -- timing-safe byte sequence compar-
       isons

SYNOPSIS
       #include	<string.h>

       int
       timingsafe_bcmp(const void *b1, const void *b2, size_t len);

       int
       timingsafe_memcmp(const void *b1, const void *b2, size_t	len);

DESCRIPTION
       The  timingsafe_bcmp()  and timingsafe_memcmp() functions lexicographi-
       cally 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-cir-
       cuit after finding the first differing byte.

RETURN VALUES
       The  timingsafe_bcmp()  function	 returns 0 or not zero if the byte se-
       quence pointed to by b1 compares	equal to  or  not  equal  to  (respec-
       tively) the byte	sequence pointed to by b2.

       The  timingsafe_memcmp()	function returns a negative value, 0, or posi-
       tive 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.

SEE ALSO
       bcmp(3),	memcmp(3)

STANDARDS
       The timingsafe_bcmp() and timingsafe_memcmp() functions are FreeBSD ex-
       tensions.

HISTORY
       The timingsafe_bcmp() function first appeared in	OpenBSD	4.9.

       The timingsafe_memcmp() function	first appeared in OpenBSD 5.6.

       Both functions first appeared in	FreeBSD	12.0.

FreeBSD	14.3			August 15, 2016		    TIMINGSAFE_BCMP(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=timingsafe_memcmp&sektion=3&manpath=FreeBSD+14.3-RELEASE+and+Ports>

home | help