xref: /netbsd-src/common/lib/libc/string/consttime_memequal.c (revision 7788a0781fe6ff2cce37368b4578a7ade0850cb1)
1 /* $NetBSD: consttime_memequal.c,v 1.1 2013/06/24 04:21:19 riastradh Exp $ */
2 
3 #if !defined(_KERNEL) && !defined(_STANDALONE)
4 #include <string.h>
5 #define consttime_memequal __consttime_memequal
6 #else
7 #include <lib/libkern/libkern.h>
8 #endif
9 
10 int
11 consttime_memequal(const void *b1, const void *b2, size_t len)
12 {
13 	const char *c1 = b1, *c2 = b2;
14 	int res = 0;
15 
16 	while (len --)
17 		res |= *c1++ ^ *c2++;
18 	return res;
19 }
20