1261287Sdes/* $OpenBSD: verify.c,v 1.3 2013/12/09 11:03:45 markus Exp $ */
2261287Sdes
3261287Sdes/*
4261287Sdes * Public Domain, Author: Daniel J. Bernstein
5261287Sdes * Copied from nacl-20110221/crypto_verify/32/ref/verify.c
6261287Sdes */
7261287Sdes
8261287Sdes#include "includes.h"
9261287Sdes
10261287Sdes#include "crypto_api.h"
11261287Sdes
12261287Sdesint crypto_verify_32(const unsigned char *x,const unsigned char *y)
13261287Sdes{
14261287Sdes  unsigned int differentbits = 0;
15261287Sdes#define F(i) differentbits |= x[i] ^ y[i];
16261287Sdes  F(0)
17261287Sdes  F(1)
18261287Sdes  F(2)
19261287Sdes  F(3)
20261287Sdes  F(4)
21261287Sdes  F(5)
22261287Sdes  F(6)
23261287Sdes  F(7)
24261287Sdes  F(8)
25261287Sdes  F(9)
26261287Sdes  F(10)
27261287Sdes  F(11)
28261287Sdes  F(12)
29261287Sdes  F(13)
30261287Sdes  F(14)
31261287Sdes  F(15)
32261287Sdes  F(16)
33261287Sdes  F(17)
34261287Sdes  F(18)
35261287Sdes  F(19)
36261287Sdes  F(20)
37261287Sdes  F(21)
38261287Sdes  F(22)
39261287Sdes  F(23)
40261287Sdes  F(24)
41261287Sdes  F(25)
42261287Sdes  F(26)
43261287Sdes  F(27)
44261287Sdes  F(28)
45261287Sdes  F(29)
46261287Sdes  F(30)
47261287Sdes  F(31)
48261287Sdes  return (1 & ((differentbits - 1) >> 8)) - 1;
49261287Sdes}
50