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