diff options
author | Paul Duncan <pabs@pablotron.org> | 2019-07-17 17:03:37 -0400 |
---|---|---|
committer | Paul Duncan <pabs@pablotron.org> | 2019-07-17 17:03:37 -0400 |
commit | 73100bf2aaa8a1bfc4b92f42a7461b99c587ef3d (patch) | |
tree | 4d1d988f6714e22e2b991e2f074a15e03667ac7f /main.c | |
parent | 2c9390c10b2f31c87830e0816ca207974ebfc590 (diff) | |
download | sha2-73100bf2aaa8a1bfc4b92f42a7461b99c587ef3d.tar.bz2 sha2-73100bf2aaa8a1bfc4b92f42a7461b99c587ef3d.zip |
add hmac-sha2 and update files
Diffstat (limited to 'main.c')
-rw-r--r-- | main.c | 70 |
1 files changed, 0 insertions, 70 deletions
@@ -1,70 +0,0 @@ -#include <stdio.h> // printf() -#include <string.h> // strlen() -#include "sha2.h" -#include "tests.h" - -static void print_hash(const uint8_t * const hash) { - for (size_t i = 0; i < SHA256_HASH_SIZE; i++) { - printf("%02x", hash[i]); - } -} - -static void print_row( - const char * const src, - const uint8_t * const hash -) { - printf("\"%s\",", src); - print_hash(hash); - printf("\n"); -} - -static void on_test_fail( - const int algo, - const char * const src, - const uint8_t * const got_hash, - const uint8_t * const expected_hash -) { - printf("sha%d,\"%s\",", algo, src); - print_hash(got_hash); - printf(","); - print_hash(expected_hash); - printf("\n"); -} - -static uint8_t dst[SHA256_HASH_SIZE]; -static uint8_t buf[1 << 21]; - -int main(int argc, char *argv[]) { - if (argc > 1) { - // if command-line parameters are given, then treat them as a - // list of files: open each file, hash it, and and print the - // result instead of running the test vectors - - for (int i = 1; i < argc; i++) { - sha256_t ctx; - sha256_init(&ctx); - - FILE *fh = fopen(argv[i], "rb"); - if (!fh) { - fprintf(stderr, "fopen(\"%s\") failed", argv[i]); - return 1; - } - - size_t len = 0; - while ((len = fread(buf, 1, sizeof(buf), fh)) > 0) { - sha256_push(&ctx, buf, len); - } - - fclose(fh); - - sha256_fini(&ctx, dst); - print_row(argv[i], dst); - } - } else { - // no command-line parameters given. run internal tests - printf("algo,input,result,expected\n"); - run_tests(on_test_fail); - } - - return 0; -} |