From 5e60e0e3af85f22aa0afe8bf0ecf85619afacfeb Mon Sep 17 00:00:00 2001 From: Micah Anderson Date: Thu, 22 Aug 2013 16:39:52 -0400 Subject: Imported Upstream version 0.6.0.12 --- src-ed25519/supercop-ref/test.c | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 src-ed25519/supercop-ref/test.c (limited to 'src-ed25519/supercop-ref/test.c') diff --git a/src-ed25519/supercop-ref/test.c b/src-ed25519/supercop-ref/test.c new file mode 100644 index 0000000..35620f2 --- /dev/null +++ b/src-ed25519/supercop-ref/test.c @@ -0,0 +1,39 @@ + +#include +#include +#include +#include "crypto_sign.h" + +char *msg = "Hello World"; + +int main(int argc, char *argv[]) { + unsigned char sk[SECRETKEYBYTES], vk[PUBLICKEYBYTES]; + unsigned char *sigmsg, *newmsg; + unsigned long long sigmsglen, newmsglen; + int ret; + crypto_sign_keypair(vk, sk); + printf("got keypair\n"); + sigmsg = malloc(strlen(msg)+1+BYTES); + if (!sigmsg) + return 1; + crypto_sign(sigmsg, &sigmsglen, (unsigned char *)msg, strlen(msg)+1, sk); + printf("got signature\n"); + if (sigmsglen != strlen(msg)+1+BYTES) + return 2; + newmsg = malloc(sigmsglen); + if (!newmsg) + return 3; + ret = crypto_sign_open(newmsg, &newmsglen, sigmsg, sigmsglen, vk); + printf("verified signature\n"); + if (ret == 0) + printf("good!\n"); + else + printf("bad\n"); + sigmsg[0] ^= 0x01; + ret = crypto_sign_open(newmsg, &newmsglen, sigmsg, sigmsglen, vk); + if (ret == 0) + printf("bad: failed to detect simple corruption\n"); + else + printf("good: detected simple corruption\n"); + return 0; +} -- cgit v1.2.3