From 8dfc66bf0a1d1a2f6f9ebbbfe2dd4eef81e8f612 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20M=C3=B6ller?= <nisse@lysator.liu.se> Date: Tue, 22 Apr 2003 21:44:24 +0200 Subject: [PATCH] * nettle.texinfo (Example): Use @verbatiminclude to include the example program. * sha-example.c: Example program, for inclusion in the manual. Rev: src/nettle/ChangeLog:1.190 Rev: src/nettle/nettle.texinfo:1.22 Rev: src/nettle/sha-example.c:1.1 --- ChangeLog | 7 +++++++ nettle.texinfo | 45 +-------------------------------------------- sha-example.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 52 insertions(+), 44 deletions(-) create mode 100644 sha-example.c diff --git a/ChangeLog b/ChangeLog index fb6e060f..6b939b6e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2003-04-22 Niels M�ller <nisse@cuckoo.hack.org> + + * nettle.texinfo (Example): Use @verbatiminclude to include the + example program. + + * sha-example.c: Example program, for inclusion in the manual. + 2003-04-14 Niels M�ller <niels@s3.kth.se> * x86/aes-encrypt.asm (nettle_aes_encrypt): Fixed references to diff --git a/nettle.texinfo b/nettle.texinfo index eaca385a..7bb244d1 100644 --- a/nettle.texinfo +++ b/nettle.texinfo @@ -251,50 +251,7 @@ A simple example program that reads a file from standard in and writes its SHA1 checksum on standard output should give the flavor of Nettle. @example -/* FIXME: This code is untested. */ -#include <stdio.h> -#include <stdlib.h> - -#include <nettle/sha.h> - -#define BUF_SIZE 1000 - -static void -display_hex(unsigned length, uint8_t *data) -@{ - static const char digits[16] = "0123456789abcdef"; - unsigned i; - - for (i = 0; i<length; i++) - @{ - uint8_t byte = data[i]; - printf("%c%c ", digits[(byte / 16) & 0xf], digits[byte & 0xf]); - @} -@} - -int -main(int argc, char **argv) -@{ - struct sha1_ctx ctx; - uint8_t buffer[BUF_SIZE]; - uint8_t digest[SHA1_DIGEST_SIZE]; - - sha1_init(&ctx); - for (;;) - @{ - int done = fread(buffer, 1, sizeof(buffer), stdin); - if (done <= 0) - break; - sha1_update(&ctx, done, buf); - @} - if (ferror(stdin)) - return EXIT_FAILURE; - - sha1_digest(&ctx, SHA1_DIGEST_SIZE, digest); - - display_hex(SHA1_DIGEST_SIZE, digest); - return EXIT_SUCCESS; -@} +@verbatiminclude example.c @end example @node Reference, Nettle soup, Example, Top diff --git a/sha-example.c b/sha-example.c new file mode 100644 index 00000000..a4818460 --- /dev/null +++ b/sha-example.c @@ -0,0 +1,44 @@ +#include <stdio.h> +#include <stdlib.h> + +#include <nettle/sha.h> + +#define BUF_SIZE 1000 + +static void +display_hex(unsigned length, uint8_t *data) +{ + static const char digits[16] = "0123456789abcdef"; + unsigned i; + + for (i = 0; i<length; i++) + { + uint8_t byte = data[i]; + printf("%c%c ", digits[(byte / 16) & 0xf], digits[byte & 0xf]); + } + printf("\n"); +} + +int +main(int argc, char **argv) +{ + struct sha1_ctx ctx; + uint8_t buffer[BUF_SIZE]; + uint8_t digest[SHA1_DIGEST_SIZE]; + + sha1_init(&ctx); + for (;;) + { + int done = fread(buffer, 1, sizeof(buffer), stdin); + sha1_update(&ctx, done, buffer); + if (done < sizeof(buffer)) + break; + } + if (ferror(stdin)) + return EXIT_FAILURE; + + sha1_digest(&ctx, SHA1_DIGEST_SIZE, digest); + + display_hex(SHA1_DIGEST_SIZE, digest); + return EXIT_SUCCESS; +} -- GitLab