You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
668 B
49 lines
668 B
/* $OpenBSD: verify.c,v 1.3 2013/12/09 11:03:45 markus Exp $ */ |
|
|
|
/* |
|
* Public Domain, Author: Daniel J. Bernstein |
|
* Copied from nacl-20110221/crypto_verify/32/ref/verify.c |
|
*/ |
|
|
|
#include "includes.h" |
|
|
|
#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; |
|
}
|
|
|