diff --git a/demos/onetimeauth.c b/demos/onetimeauth.c deleted file mode 100644 index e344dc64..00000000 --- a/demos/onetimeauth.c +++ /dev/null @@ -1,71 +0,0 @@ -/* - * GraxRabble - * Demo programs for libsodium. - */ -#include -#include -#include - -#include /* library header */ - -#include "utils.h" /* utility functions shared by demos */ - -/* - * This method is only effective for a single use per key. The benefit is - * the algorithm is quicker and output is half the size of auth. It is easy - * to see how weak the algorithm is when you use a one letter key. - * - * Note that the same key must not be used more than once. - */ -static int -onetimeauth(void) -{ - unsigned char k[crypto_onetimeauth_KEYBYTES]; /* key */ - unsigned char a[crypto_onetimeauth_BYTES]; /* authentication */ - unsigned char m[MAX_INPUT_SIZE]; /* message */ - size_t mlen; /* message length */ - int r; - - puts("Example: crypto_onetimeauth\n"); - - /* - * Keys are entered as ascii values. The key is zeroed to - * maintain consistency. Input is read through a special - * function which reads exactly n bytes into a buffer to - * prevent buffer overflows. - */ - memset(k, 0, sizeof k); - prompt_input("Input your key > ", (char*)k, sizeof k); - puts("Your key that you entered"); - print_hex(k, sizeof k); - putchar('\n'); - - mlen = prompt_input("Input your message > ", (char*)m, sizeof m); - putchar('\n'); - - printf("Generating %s authentication...\n", crypto_onetimeauth_primitive()); - crypto_onetimeauth(a, m, mlen, k); - - puts("Format: authentication token::message"); - print_hex(a, sizeof a); - fputs("::", stdout); - puts((const char*)m); - putchar('\n'); - - puts("Verifying authentication..."); - r = crypto_onetimeauth_verify(a, m, mlen, k); - print_verification(r); - - sodium_memzero(k, sizeof k); /* wipe sensitive data */ - sodium_memzero(a, sizeof a); - sodium_memzero(m, sizeof m); - return r; -} - -int -main(void) -{ - init(); - - return onetimeauth() != 0; -}