diff options
Diffstat (limited to 'src/libsodium/crypto_verify/32/ref')
-rw-r--r-- | src/libsodium/crypto_verify/32/ref/api.h | 2 | ||||
-rw-r--r-- | src/libsodium/crypto_verify/32/ref/verify_32.c | 40 |
2 files changed, 42 insertions, 0 deletions
diff --git a/src/libsodium/crypto_verify/32/ref/api.h b/src/libsodium/crypto_verify/32/ref/api.h new file mode 100644 index 0000000..e2e3a1c --- /dev/null +++ b/src/libsodium/crypto_verify/32/ref/api.h @@ -0,0 +1,2 @@ + +#include "crypto_verify_32.h" diff --git a/src/libsodium/crypto_verify/32/ref/verify_32.c b/src/libsodium/crypto_verify/32/ref/verify_32.c new file mode 100644 index 0000000..31c3697 --- /dev/null +++ b/src/libsodium/crypto_verify/32/ref/verify_32.c @@ -0,0 +1,40 @@ +#include "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; +} |