1212
1313
1414def hexstr (s ):
15- import string
16- h = string . hexdigits
17- r = ''
18- for c in s :
19- i = ord ( c )
20- r = r + h [( i >> 4 ) & 0xF ] + h [i & 0xF ]
15+ assert isinstance ( s , bytes ), repr ( s )
16+ h = b"0123456789abcdef"
17+ r = b ''
18+ for i in s :
19+ r . append ( h [( i >> 4 ) & 0xF ] )
20+ r . append ( h [i & 0xF ])
2121 return r
2222
2323
@@ -37,7 +37,8 @@ def test_unknown_hash(self):
3737 def test_hexdigest (self ):
3838 for name in self .supported_hash_names :
3939 h = hashlib .new (name )
40- self .assert_ (hexstr (h .digest ()) == h .hexdigest ())
40+ assert isinstance (h .digest (), bytes ), name
41+ self .assertEqual (hexstr (h .digest ()), h .hexdigest ())
4142
4243
4344 def test_large_update (self ):
@@ -66,35 +67,37 @@ def check(self, name, data, digest):
6667
6768
6869 def test_case_md5_0 (self ):
69- self .check ('md5' , '' , 'd41d8cd98f00b204e9800998ecf8427e' )
70+ self .check ('md5' , b '' , b 'd41d8cd98f00b204e9800998ecf8427e' )
7071
7172 def test_case_md5_1 (self ):
72- self .check ('md5' , 'abc' , '900150983cd24fb0d6963f7d28e17f72' )
73+ self .check ('md5' , b 'abc' , b '900150983cd24fb0d6963f7d28e17f72' )
7374
7475 def test_case_md5_2 (self ):
75- self .check ('md5' , 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789' ,
76- 'd174ab98d277d9f5a5611c2c9f419d9f' )
76+ self .check ('md5' ,
77+ b'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789' ,
78+ b'd174ab98d277d9f5a5611c2c9f419d9f' )
7779
7880
7981 # use the three examples from Federal Information Processing Standards
8082 # Publication 180-1, Secure Hash Standard, 1995 April 17
8183 # http://www.itl.nist.gov/div897/pubs/fip180-1.htm
8284
8385 def test_case_sha1_0 (self ):
84- self .check ('sha1' , "" ,
85- "da39a3ee5e6b4b0d3255bfef95601890afd80709" )
86+ self .check ('sha1' , b "" ,
87+ b "da39a3ee5e6b4b0d3255bfef95601890afd80709" )
8688
8789 def test_case_sha1_1 (self ):
88- self .check ('sha1' , "abc" ,
89- "a9993e364706816aba3e25717850c26c9cd0d89d" )
90+ self .check ('sha1' , b "abc" ,
91+ b "a9993e364706816aba3e25717850c26c9cd0d89d" )
9092
9193 def test_case_sha1_2 (self ):
92- self .check ('sha1' , "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq" ,
93- "84983e441c3bd26ebaae4aa1f95129e5e54670f1" )
94+ self .check ('sha1' ,
95+ b"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq" ,
96+ b"84983e441c3bd26ebaae4aa1f95129e5e54670f1" )
9497
9598 def test_case_sha1_3 (self ):
96- self .check ('sha1' , "a" * 1000000 ,
97- "34aa973cd4c4daa4f61eeb2bdbad27316534016f" )
99+ self .check ('sha1' , b "a" * 1000000 ,
100+ b "34aa973cd4c4daa4f61eeb2bdbad27316534016f" )
98101
99102
100103 # use the examples from Federal Information Processing Standards
0 commit comments