| /* $OpenBSD: */ | |
| /* Public Domain, from supercop-20130419/crypto_verify/32/ref/verify.c */ | |
| #include "crypto_api.h" | |
| int crypto_verify_32(const unsigned char *x,const unsigned char *y) | |
| { | |
| unsigned int differentbits = 0; | |
| #define F(i) differentbits |= x[i] ^ y[i]; | |
| F(0) | |
| F(1) | |
| F(2) | |
| F(3) | |
| F(4) | |
| F(5) | |
| F(6) | |
| F(7) | |
| F(8) | |
| F(9) | |
| F(10) | |
| F(11) | |
| F(12) | |
| F(13) | |
| F(14) | |
| F(15) | |
| F(16) | |
| F(17) | |
| F(18) | |
| F(19) | |
| F(20) | |
| F(21) | |
| F(22) | |
| F(23) | |
| F(24) | |
| F(25) | |
| F(26) | |
| F(27) | |
| F(28) | |
| F(29) | |
| F(30) | |
| F(31) | |
| return (1 & ((differentbits - 1) >> 8)) - 1; | |
| } |