summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMikhail Gusarov <dottedmag@dottedmag.net>2008-10-10 02:53:53 +0700
committerMikhail Gusarov <dottedmag@dottedmag.net>2008-10-10 02:53:53 +0700
commit862bd9d08e5b91bdc009015d17c22dc36acedc42 (patch)
treebf879823ab88e3f4bcafd6119b1b8cc499f26b69
parentba851162cd997481a46ffc736ff54a0b898c2959 (diff)
downloadlibsha1-862bd9d08e5b91bdc009015d17c22dc36acedc42.tar.gz
Added small testsuite.
Signed-off-by: Mikhail Gusarov <dottedmag@dottedmag.net>
-rw-r--r--test.c69
1 files changed, 69 insertions, 0 deletions
diff --git a/test.c b/test.c
new file mode 100644
index 0000000..ebe2b44
--- /dev/null
+++ b/test.c
@@ -0,0 +1,69 @@
+#include <stdio.h>
+#include <string.h>
+
+#include "sha1.h"
+
+static void print_hex(const char* data, size_t size)
+{
+ int i;
+ printf("0x");
+ for(i = 0; i < size; ++i)
+ printf("%x%x", ((unsigned char)data[i])/16, ((unsigned char)data[i])%16);
+}
+
+static num_test;
+
+static int do_test(const char* data, size_t size, const char* expected_dgst)
+{
+ sha1_ctx ctx;
+ int i;
+ char dgst[SHA1_DIGEST_SIZE];
+
+ printf("Test %d. [%d] ", num_test++, size);
+ print_hex(data, size);
+ printf("\nExpected : ");
+ print_hex(expected_dgst, SHA1_DIGEST_SIZE);
+ printf("\n");
+
+ sha1_begin(&ctx);
+ for(i = 0; i < size; ++i)
+ sha1_hash(data+i, 1, &ctx);
+ sha1_end(dgst, &ctx);
+
+ printf("Actual (1-byte) : ");
+ print_hex(dgst, SHA1_DIGEST_SIZE);
+ if(!memcmp(dgst, expected_dgst, SHA1_DIGEST_SIZE))
+ printf(" - ok\n");
+ else
+ {
+ printf(" - ERR\n");
+ return 0;
+ }
+
+ sha1_begin(&ctx);
+ sha1_hash(data, size, &ctx);
+ sha1_end(dgst, &ctx);
+ printf("Actual (1 block): ");
+ print_hex(dgst, SHA1_DIGEST_SIZE);
+ if(!memcmp(dgst, expected_dgst, SHA1_DIGEST_SIZE))
+ printf(" - ok\n");
+ else
+ {
+ printf(" - ERR\n");
+ return 0;
+ }
+
+ return 1;
+}
+
+char t1[] = "";
+char t1_output[] = "\xda\x39\xa3\xee\x5e\x6b\x4b\x0d\x32\x55\xbf\xef\x95\x60\x18\x90\xaf\xd8\x07\x09";
+
+char t2[] = "1234567890";
+char t2_output[] = "\x01\xb3\x07\xac\xba\x4f\x54\xf5\x5a\xaf\xc3\x3b\xb0\x6b\xbb\xf6\xca\x80\x3e\x9a";
+
+int main()
+{
+ do_test(t1, sizeof(t1) - 1, t1_output);
+ do_test(t2, sizeof(t2) - 1, t2_output);
+}