vendor/libsodium/src/libsodium/crypto_verify/32/ref/verify_32.c in rbnacl-libsodium-1.0.6 vs vendor/libsodium/src/libsodium/crypto_verify/32/ref/verify_32.c in rbnacl-libsodium-1.0.7
- old
+ new
@@ -1,40 +1,17 @@
-#include "api.h"
-int crypto_verify_32(const unsigned char *x,const unsigned char *y)
+#include <stddef.h>
+#include <stdint.h>
+
+#include "crypto_verify_32.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;
+ uint_fast16_t d = 0U;
+ int i;
+
+ for (i = 0; i < 32; i++) {
+ d |= x[i] ^ y[i];
+ }
+ return (1 & ((d - 1) >> 8)) - 1;
}