You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
	
	
		
			45 lines
		
	
	
		
			663 B
		
	
	
	
		
			C
		
	
		
		
			
		
	
	
			45 lines
		
	
	
		
			663 B
		
	
	
	
		
			C
		
	
| 
											11 years ago
										 | #include <string.h>
 | ||
|  | #include "compare.h"
 | ||
|  | 
 | ||
|  | /* Const-time comparison from SUPERCOP, but here it's only used for 
 | ||
|  |    signature verification, so doesn't need to be const-time.  But | ||
|  |    copied the nacl version anyways. */ | ||
|  | int crypto_verify_32_ref(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; | ||
|  | } |