]> git.saurik.com Git - apt.git/blob - test/hash.cc
Fixed matching all releases
[apt.git] / test / hash.cc
1 #include <apt-pkg/md5.h>
2 #include <apt-pkg/sha1.h>
3 #include <apt-pkg/strutl.h>
4
5 template <class T> void Test(const char *In,const char *Out)
6 {
7 T Sum;
8 Sum.Add(In);
9 cout << Sum.Result().Value() << endl;
10 if (stringcasecmp(Sum.Result().Value(),Out) != 0)
11 abort();
12 }
13
14 template <class T> void TestMill(const char *Out)
15 {
16 T Sum;
17
18 const unsigned char As[] = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
19 unsigned Count = 1000000;
20 for (; Count != 0;)
21 {
22 if (Count >= 64)
23 {
24 Sum.Add(As,64);
25 Count -= 64;
26 }
27 else
28 {
29 Sum.Add(As,Count);
30 Count = 0;
31 }
32 }
33
34 cout << Sum.Result().Value() << endl;
35 if (stringcasecmp(Sum.Result().Value(),Out) != 0)
36 abort();
37 }
38
39 int main()
40 {
41 // From FIPS PUB 180-1
42 Test<SHA1Summation>("abc","A9993E364706816ABA3E25717850C26C9CD0D89D");
43 Test<SHA1Summation>("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq",
44 "84983E441C3BD26EBAAE4AA1F95129E5E54670F1");
45 TestMill<SHA1Summation>("34AA973CD4C4DAA4F61EEB2BDBAD27316534016F");
46
47 // MD5 tests from RFC 1321
48 Test<MD5Summation>("","d41d8cd98f00b204e9800998ecf8427e");
49 Test<MD5Summation>("a","0cc175b9c0f1b6a831c399e269772661");
50 Test<MD5Summation>("abc","900150983cd24fb0d6963f7d28e17f72");
51 Test<MD5Summation>("message digest","f96b697d7cb7938d525a2f31aaf161d0");
52 Test<MD5Summation>("abcdefghijklmnopqrstuvwxyz","c3fcd3d76192e4007dfb496cca67e13b");
53 Test<MD5Summation>("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",
54 "d174ab98d277d9f5a5611c2c9f419d9f");
55 Test<MD5Summation>("12345678901234567890123456789012345678901234567890123456789012345678901234567890",
56 "57edf4a22be3c955ac49da2e2107b67a");
57 return 0;
58 }
59
60