Changeset 141 for trunk/DevTestMethods


Ignore:
Timestamp:
Dec 11, 2008, 11:07:10 AM (13 years ago)
Author:
Gerhard Junker
Message:

Tiger: version Tiger2 added (only to change 2 chars)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/DevTestMethods/TigerTest.cs

    r139 r141  
    4646
    4747    [TestMethod]
    48     public void TigerTestMethod()
     48    public void TigerTestMethod1()
    4949    {
    5050
    5151      string TEST_DATA = "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq";
    5252      byte[] TEST_HASH = {
    53                       0xF, 0x7B, 0xF9, 0xA1, 0x9B, 0x9C, 0x58, 0xF2,
    54                       0xB7, 0x61, 0xD, 0xF7, 0xE8, 0x4F, 0xA, 0xC3,
     53                      0x0F, 0x7B, 0xF9, 0xA1, 0x9B, 0x9C, 0x58, 0xF2,
     54                      0xB7, 0x61, 0x0D, 0xF7, 0xE8, 0x4F, 0x0A, 0xC3,
    5555                      0xA7, 0x1C, 0x63, 0x1E, 0x7B, 0x53, 0xF7, 0x8E};
    5656
     
    6969        Assert.AreEqual(hash[i], TEST_HASH[i], "Invalid hash value.");
    7070    }
     71
     72    [TestMethod]
     73    public void TigerTestMethod2()
     74    {
     75      // test vectors from
     76      // http://www.cs.technion.ac.il/~biham/Reports/Tiger/tiger2-test-vectors-nessie-format.dat
     77      //
     78      string[] source =
     79      {
     80        "",
     81        "a",
     82        "abc",
     83        "message digest",
     84        "abcdefghijklmnopqrstuvwxyz",
     85        "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq",
     86        "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",
     87        "12345678901234567890123456789012345678901234567890123456789012345678901234567890",
     88        "The quick brown fox jumps over the lazy dog" // wikipedia
     89      };
     90
     91      string[] result1 =
     92      {
     93        "3293AC630C13F0245F92BBB1766E16167A4E58492DDE73F3", // ""
     94        "77BEFBEF2E7EF8AB2EC8F93BF587A7FC613E247F5F247809", // "a"
     95        "2AAB1484E8C158F2BFB8C5FF41B57A525129131C957B5F93", // "abc"
     96        "D981F8CB78201A950DCF3048751E441C517FCA1AA55A29F6", // "message digest"
     97        "1714A472EEE57D30040412BFCC55032A0B11602FF37BEEE9", // "a..z"
     98        "0F7BF9A19B9C58F2B7610DF7E84F0AC3A71C631E7B53F78E", // "a...q"
     99        "8DCEA680A17583EE502BA38A3C368651890FFBCCDC49A8CC", // "A...Za...z0...9"
     100        "1C14795529FD9F207A958F84C52F11E887FA0CABDFD91BFD", // 8 times "1234567890"
     101        "6D12A41E72E644F017B6F0E2F7B44C6285F06DD5D2C5B075"  // The quick brown fox ...
     102       
     103      };
     104
     105      string[] result2 =
     106      {
     107        "4441BE75F6018773C206C22745374B924AA8313FEF919F41", // ""
     108        "67E6AE8E9E968999F70A23E72AEAA9251CBC7C78A7916636", // "a"
     109        "F68D7BC5AF4B43A06E048D7829560D4A9415658BB0B1F3BF", // "abc"
     110        "E29419A1B5FA259DE8005E7DE75078EA81A542EF2552462D", // "message digest"
     111        "F5B6B6A78C405C8547E91CD8624CB8BE83FC804A474488FD", // "a..z"
     112        "A6737F3997E8FBB63D20D2DF88F86376B5FE2D5CE36646A9", // "a...q"
     113        "EA9AB6228CEE7B51B77544FCA6066C8CBB5BBAE6319505CD", // "A...Za...z0...9"
     114        "D85278115329EBAA0EEC85ECDC5396FDA8AA3A5820942FFF", // 8 times "1234567890"
     115        "976ABFF8062A2E9DCEA3A1ACE966ED9C19CB85558B4976D8"  // The quick brown fox ...
     116      };
     117
     118      ASCIIEncoding enc = new ASCIIEncoding();
     119
     120      for (int i = 0; i < source.Length; i++)
     121      {
     122        testContextInstance.WriteLine(" Test " + i.ToString());
     123        testContextInstance.WriteLine(" data = " + source[i]);
     124
     125        HMACTIGER  tg1 = new HMACTIGER();
     126        HMACTIGER2 tg2 = new HMACTIGER2();
     127
     128        tg1.Initialize();
     129        tg2.Initialize();
     130       
     131        byte[] code = enc.GetBytes(source[i]);
     132        byte[] hash1 = tg1.ComputeHash(code);
     133        byte[] hash2 = tg2.ComputeHash(code);
     134
     135        string tmp = "";
     136        foreach (byte b in hash1)
     137        {
     138          if (b < 0x10)
     139            tmp += "0";
     140          tmp += b.ToString("X");
     141        }
     142
     143        testContextInstance.WriteLine(" expected   = " + result1[i]);
     144        testContextInstance.WriteLine(" calculated = " + tmp);
     145
     146        Assert.AreEqual(result1[i], tmp, "Hash(1) is invalid.");
     147
     148        tmp = "";
     149        foreach (byte b in hash2)
     150        {
     151          if (b < 0x10)
     152            tmp += "0";
     153          tmp += b.ToString("X");
     154        }
     155
     156        testContextInstance.WriteLine(" expected   = " + result2[i]);
     157        testContextInstance.WriteLine(" calculated = " + tmp);
     158
     159        Assert.AreEqual(result2[i], tmp, "Hash(2) is invalid.");
     160      }
     161    }
     162
    71163  }
    72164}
Note: See TracChangeset for help on using the changeset viewer.