fix byte-order detection for gcc < v4.4.
[ardour.git] / libs / ardour / test / sha1_test.cc
1 #include <stdio.h>
2 #include <string.h>
3 #include "sha1.c"
4 #include "sha1_test.h"
5
6 CPPUNIT_TEST_SUITE_REGISTRATION (Sha1Test);
7
8 void
9 Sha1Test::basicTest ()
10 {
11         uint32_t a;
12         char hash[41];
13         Sha1Digest s;
14
15         sha1_init (&s);
16         sha1_write (&s, (const uint8_t *) "abc", 3);
17         sha1_result_hash (&s, hash);
18         printf ("\nSha1: FIPS 180-2 C.1 and RFC3174 7.3 TEST1");
19         printf ("Expect: a9993e364706816aba3e25717850c26c9cd0d89d\n");
20         printf ("Result: %s\n", hash);
21         CPPUNIT_ASSERT_MESSAGE ("Sha1: FIPS 180-2 C.1 and RFC3174 7.3 TEST1",
22                         !strcmp ("a9993e364706816aba3e25717850c26c9cd0d89d", hash));
23
24
25         sha1_init (&s);
26         sha1_write (&s, (const uint8_t *) "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq", 56);
27         sha1_result_hash (&s, hash);
28         printf ("\nSha1: FIPS 180-2 C.2 and RFC3174 7.3 TEST2\n");
29         printf ("Expect: 84983e441c3bd26ebaae4aa1f95129e5e54670f1\n");
30         printf ("Result: %s\n", hash);
31         CPPUNIT_ASSERT_MESSAGE ("Sha1: FIPS 180-2 C.2 and RFC3174 7.3 TEST2",
32                         !strcmp ("84983e441c3bd26ebaae4aa1f95129e5e54670f1", hash));
33
34
35         sha1_init (&s);
36         for (a = 0; a < 80; ++a) sha1_write (&s, (const uint8_t *) "01234567", 8);
37         sha1_result_hash (&s, hash);
38         printf ("\nSha1: RFC3174 7.3 TEST4\n");
39         printf ("Expect: dea356a2cddd90c7a7ecedc5ebb563934f460452\n");
40         printf ("Result: %s\n", hash);
41         CPPUNIT_ASSERT_MESSAGE ("Sha1: RFC3174 7.3 TEST4",
42                         !strcmp ("dea356a2cddd90c7a7ecedc5ebb563934f460452", hash));
43
44
45         sha1_init (&s);
46         for (a = 0; a < 1000000; ++a) sha1_writebyte (&s, 'a');
47         sha1_result_hash (&s, hash);
48         printf ("\nSha1: Sha1: FIPS 180-2 C.3 and RFC3174 7.3 TEST3\n");
49         printf ("Expect:34aa973cd4c4daa4f61eeb2bdbad27316534016f\n");
50         printf ("Result:%s\n", hash);
51         CPPUNIT_ASSERT_MESSAGE ("Sha1: FIPS 180-2 C.3 and RFC3174 7.3 TEST3",
52                         !strcmp ("34aa973cd4c4daa4f61eeb2bdbad27316534016f", hash));
53 }