From 20093245e320b661f949ca1bfb49d05a53f80aee Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Wed, 8 Aug 2007 21:06:01 +0000 Subject: Add shasum (from OE) git-svn-id: https://svn.o-hand.com/repos/poky/trunk@2412 311d38ba-8fff-0310-9ca6-ca027cbcb966 --- meta/packages/shasum/files/main.c | 60 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 meta/packages/shasum/files/main.c (limited to 'meta/packages/shasum/files/main.c') diff --git a/meta/packages/shasum/files/main.c b/meta/packages/shasum/files/main.c new file mode 100644 index 000000000..0748a94f3 --- /dev/null +++ b/meta/packages/shasum/files/main.c @@ -0,0 +1,60 @@ +#include +#include + +#include "mhash_sha256.h" + +/* + * from driver.c of mhash + */ +static const char hexconvtab[] = "0123456789abcdef"; + +static char * +bin2hex(const unsigned char *old, const size_t oldlen, size_t * newlen) +{ + unsigned char *new = NULL; + int i, j; + + new = (char *) malloc(oldlen * 2 * sizeof(char) + 1); + if (!new) + return (new); + + for (i = j = 0; i < oldlen; i++) { + new[j++] = hexconvtab[old[i] >> 4]; + new[j++] = hexconvtab[old[i] & 15]; + } + new[j] = '\0'; + + if (newlen) + *newlen = oldlen * 2 * sizeof(char); + + return (new); +} + + +int main(int argc, char** argv) +{ + FILE *file; + size_t n; + SHA256_CTX ctx; + unsigned char buf[1024]; + byte output[33]; + + if ( argc <= 1 ) { + return EXIT_FAILURE; + } + + if ( (file=fopen(argv[1], "rb")) == NULL ) { + return EXIT_FAILURE; + } + + sha256_init(&ctx); + + while ( (n=fread( buf, 1, sizeof(buf), file)) > 0 ) + sha256_update(&ctx, buf, n ); + + sha256_final(&ctx); + sha256_digest(&ctx, output); + + printf("%s ?%s\n", bin2hex(output, 32, &n), argv[1]); + return EXIT_SUCCESS; +} -- cgit v1.2.3