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.
		
		
		
		
		
			
		
			
	
	
		
			42 lines
		
	
	
		
			888 B
		
	
	
	
		
			C
		
	
		
		
			
		
	
	
			42 lines
		
	
	
		
			888 B
		
	
	
	
		
			C
		
	
| 
											11 years ago
										 | #include <stdio.h>
 | ||
|  | #include <string.h>
 | ||
|  | #include "sha512.h"
 | ||
|  | #include "curve_sigs.h"
 | ||
|  | 
 | ||
|  | int main(int argc, char* argv[]) | ||
|  | { | ||
|  |   unsigned char privkey[32]; | ||
|  |   unsigned char pubkey[32]; | ||
|  |   unsigned char signature[64]; | ||
|  |   unsigned char msg[100]; | ||
|  |   unsigned long long msg_len = 100; | ||
|  | 
 | ||
|  |   /* Initialize pubkey, privkey, msg */ | ||
|  |   memset(msg, 0, 100); | ||
|  |   memset(privkey, 0, 32); | ||
|  |   memset(pubkey, 0, 32); | ||
|  |   privkey[0] &= 248; | ||
|  |   privkey[31] &= 63; | ||
|  |   privkey[31] |= 64; | ||
|  | 
 | ||
|  |   privkey[8] = 189; /* just so there's some bits set */ | ||
|  | 
 | ||
|  |   curve25519_keygen(pubkey, privkey); | ||
|  | 
 | ||
|  |   curve25519_sign(signature, privkey, msg, msg_len); | ||
|  | 
 | ||
|  |   if (curve25519_verify(signature, pubkey, msg, msg_len) == 0) | ||
|  |     printf("success #1\n"); | ||
|  |   else | ||
|  |     printf("failure #1\n"); | ||
|  | 
 | ||
|  |   signature[0] ^= 1; | ||
|  | 
 | ||
|  |   if (curve25519_verify(signature, pubkey, msg, msg_len) == 0) | ||
|  |     printf("failure #2\n"); | ||
|  |   else | ||
|  |     printf("success #2\n"); | ||
|  | 
 | ||
|  |   return 1; | ||
|  | } |