|
1 | | -from whirlpool import hash |
| 1 | +import unittest |
| 2 | + |
| 3 | +import whirlpool |
| 4 | + |
2 | 5 | from binascii import b2a_hex |
3 | 6 |
|
4 | | -assert b2a_hex(hash('The quick brown fox jumps over the lazy dog')) == \ |
5 | | - 'b97de512e91e3828b40d2b0fdce9ceb3c4a71f9bea8d88e75c4fa854df36725fd2b52eb6544edcacd6f8beddfea403cb55ae31f03ad62a5ef54e42ee82c3fb35' |
6 | | -assert b2a_hex(hash('The quick brown fox jumps over the lazy eog')) == \ |
7 | | - 'c27ba124205f72e6847f3e19834f925cc666d0974167af915bb462420ed40cc50900d85a1f923219d832357750492d5c143011a76988344c2635e69d06f2d38c' |
8 | | -assert b2a_hex(hash('')) == \ |
9 | | - '19fa61d75522a4669b44e39c1d2e1726c530232130d407f89afee0964997f7a73e83be698b288febcf88e3e03c4f0757ea8964e59b63d93708b138cc42a66eb3' |
| 7 | + |
| 8 | +results = { |
| 9 | + 'empty' : '19fa61d75522a4669b44e39c1d2e1726c530232130d407f89afee0964997f7a73e83be698b288febcf88e3e03c4f0757ea8964e59b63d93708b138cc42a66eb3', |
| 10 | + 'tqbfjotld' : 'b97de512e91e3828b40d2b0fdce9ceb3c4a71f9bea8d88e75c4fa854df36725fd2b52eb6544edcacd6f8beddfea403cb55ae31f03ad62a5ef54e42ee82c3fb35', |
| 11 | + 'tqbfjotle' : 'c27ba124205f72e6847f3e19834f925cc666d0974167af915bb462420ed40cc50900d85a1f923219d832357750492d5c143011a76988344c2635e69d06f2d38c', |
| 12 | + 'tqbf' : '317edc3c5172ea5987902aa9c4f1defedf4d5aa59209bdf7574cc6da0039852c24b8da70ecb07997ff83e86d32d2851215d3dcbd6bb9736bdef21c349d483e6d', |
| 13 | +} |
| 14 | + |
| 15 | + |
| 16 | +class TestWhirlpool(unittest.TestCase): |
| 17 | + |
| 18 | + def test_hash_empty(self): |
| 19 | + self.assertEqual(b2a_hex(whirlpool.hash('')), results['empty']) |
| 20 | + |
| 21 | + def test_hash_fox(self): |
| 22 | + self.assertEqual( |
| 23 | + b2a_hex(whirlpool.hash('The quick brown fox jumps over the lazy dog')), |
| 24 | + results['tqbfjotld']) |
| 25 | + self.assertEqual( |
| 26 | + b2a_hex(whirlpool.hash('The quick brown fox jumps over the lazy eog')), |
| 27 | + results['tqbfjotle']) |
| 28 | + |
| 29 | + def test_new_empty(self): |
| 30 | + wp = whirlpool.new() |
| 31 | + self.assertEqual(b2a_hex(wp.digest()), results['empty']) |
| 32 | + self.assertEqual(wp.hexdigest(), results['empty']) |
| 33 | + |
| 34 | + def test_new_fox(self): |
| 35 | + wp1 = whirlpool.new('The quick brown fox jumps over the lazy dog') |
| 36 | + self.assertEqual(b2a_hex(wp1.digest()), results['tqbfjotld']) |
| 37 | + self.assertEqual(wp1.hexdigest(), results['tqbfjotld']) |
| 38 | + |
| 39 | + wp2 = whirlpool.new('The quick brown fox jumps over the lazy eog') |
| 40 | + self.assertEqual(b2a_hex(wp2.digest()), results['tqbfjotle']) |
| 41 | + self.assertEqual(wp2.hexdigest(), results['tqbfjotle']) |
| 42 | + |
| 43 | + def test_update_copy(self): |
| 44 | + wp1 = whirlpool.new() |
| 45 | + wp2 = wp1.copy() |
| 46 | + wp1.update('The quick brown fox') |
| 47 | + wp3 = wp1.copy() |
| 48 | + |
| 49 | + self.assertEqual(b2a_hex(wp1.digest()), results['tqbf']) |
| 50 | + self.assertEqual(wp1.hexdigest(), results['tqbf']) |
| 51 | + |
| 52 | + self.assertEqual(b2a_hex(wp2.digest()), results['empty']) |
| 53 | + self.assertEqual(wp2.hexdigest(), results['empty']) |
| 54 | + |
| 55 | + self.assertEqual(b2a_hex(wp3.digest()), results['tqbf']) |
| 56 | + self.assertEqual(wp3.hexdigest(), results['tqbf']) |
| 57 | + |
| 58 | + wp1.update(' jumps over the lazy dog') |
| 59 | + |
| 60 | + self.assertEqual(b2a_hex(wp1.digest()), results['tqbfjotld']) |
| 61 | + self.assertEqual(wp1.hexdigest(), results['tqbfjotld']) |
| 62 | + |
| 63 | + self.assertEqual(b2a_hex(wp2.digest()), results['empty']) |
| 64 | + self.assertEqual(wp2.hexdigest(), results['empty']) |
| 65 | + |
| 66 | + self.assertEqual(b2a_hex(wp3.digest()), results['tqbf']) |
| 67 | + self.assertEqual(wp3.hexdigest(), results['tqbf']) |
| 68 | + |
| 69 | + wp3.update(' jumps over the lazy eog') |
| 70 | + |
| 71 | + self.assertEqual(b2a_hex(wp1.digest()), results['tqbfjotld']) |
| 72 | + self.assertEqual(wp1.hexdigest(), results['tqbfjotld']) |
| 73 | + |
| 74 | + self.assertEqual(b2a_hex(wp2.digest()), results['empty']) |
| 75 | + self.assertEqual(wp2.hexdigest(), results['empty']) |
| 76 | + |
| 77 | + self.assertEqual(b2a_hex(wp3.digest()), results['tqbfjotle']) |
| 78 | + self.assertEqual(wp3.hexdigest(), results['tqbfjotle']) |
| 79 | + |
| 80 | + |
| 81 | +if __name__ == '__main__': |
| 82 | + unittest.main() |
0 commit comments