Guido van Rossum | a6386ce | 1999-03-24 19:04:32 +0000 | [diff] [blame^] | 1 | # Testing sha module (NIST's Secure Hash Algorithm) |
| 2 | |
| 3 | import sha |
| 4 | |
| 5 | # use the three examples from Federal Information Processing Standards |
| 6 | # Publication 180-1, Secure Hash Standard, 1995 April 17 |
| 7 | # http://www.itl.nist.gov/div897/pubs/fip180-1.htm |
| 8 | |
| 9 | s = [''] * 3 |
| 10 | d = [''] * 3 |
| 11 | |
| 12 | s[0] = 'abc' |
| 13 | d[0] = 'a9993e364706816aba3e25717850c26c9cd0d89d' |
| 14 | |
| 15 | s[1] = 'abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq' |
| 16 | d[1] = '84983e441c3bd26ebaae4aa1f95129e5e54670f1' |
| 17 | |
| 18 | s[2] = 'a' * 1000000 |
| 19 | d[2] = '34aa973cd4c4daa4f61eeb2bdbad27316534016f' |
| 20 | |
| 21 | for i in range(3): |
| 22 | test = sha.new(s[i]).hexdigest() |
| 23 | if test == d[i]: |
| 24 | print "test %d ok" % i |
| 25 | else: |
| 26 | print "test %d failed" % i |
| 27 | print "expected", d[i] |
| 28 | print "computed", test |