summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--nettle.texinfo45
-rw-r--r--sha-example.c44
3 files changed, 52 insertions, 44 deletions
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;
+}