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