Moxie Marlinspike 2ed8d333d9 Add ed25519
2014-10-20 12:14:18 -07:00

42 lines
888 B
C

#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;
}