consttime_memequal.c revision 1.3
1/* $NetBSD: consttime_memequal.c,v 1.3 2013/08/28 17:47:07 riastradh Exp $ */
2
3#if !defined(_KERNEL) && !defined(_STANDALONE)
4#include "namespace.h"
5#include <string.h>
6#ifdef __weak_alias
7__weak_alias(consttime_memequal,_consttime_memequal)
8#endif
9#else
10#include <lib/libkern/libkern.h>
11#endif
12
13int
14consttime_memequal(const void *b1, const void *b2, size_t len)
15{
16	const char *c1 = b1, *c2 = b2;
17	int res = 0;
18
19	while (len --)
20		res |= *c1++ ^ *c2++;
21	return !res;
22}
23