#include <stddef.h> int timingsafe_memcmp(const void *s1, const void *s2, size_t n) { unsigned int i, ret = -1; const unsigned char *b1 = s1; const unsigned char *b2 = s2; for(i = 0; i < n; i++) ret |= (b1[i] ^ b2[i]); return ret; }