diff options
author | Micah Anderson <micah@riseup.net> | 2013-08-22 16:39:52 -0400 |
---|---|---|
committer | Micah Anderson <micah@riseup.net> | 2013-08-22 16:39:52 -0400 |
commit | 5e60e0e3af85f22aa0afe8bf0ecf85619afacfeb (patch) | |
tree | 6a91a3de86fa8de0b4167cc947ab72991bf8da31 /src-ed25519/supercop-ref/test.c | |
parent | 30e9097985656920f01a72efc1088caa2b8d41b3 (diff) |
Imported Upstream version 0.6.0.12upstream/0.6.0.12
Diffstat (limited to 'src-ed25519/supercop-ref/test.c')
-rw-r--r-- | src-ed25519/supercop-ref/test.c | 39 |
1 files changed, 39 insertions, 0 deletions
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 <stdlib.h> +#include <stdio.h> +#include <string.h> +#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; +} |