[Python-checkins] python/dist/src/Lib/test test_hmac.py,1.7,1.8

jhylton@users.sourceforge.net jhylton@users.sourceforge.net
Tue, 27 May 2003 09:16:44 -0700


Update of /cvsroot/python/python/dist/src/Lib/test
In directory sc8-pr-cvs1:/tmp/cvs-serv7241

Modified Files:
	test_hmac.py 
Log Message:
Add more tests from RFC 2202.


Index: test_hmac.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/test/test_hmac.py,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** test_hmac.py	1 May 2003 17:45:37 -0000	1.7
--- test_hmac.py	27 May 2003 16:16:41 -0000	1.8
***************
*** 1,3 ****
--- 1,4 ----
  import hmac
+ import sha
  import unittest
  from test import test_support
***************
*** 5,14 ****
  class TestVectorsTestCase(unittest.TestCase):
  
!     def test_vectors(self):
          # Test the HMAC module against test vectors from the RFC.
  
          def md5test(key, data, digest):
              h = hmac.HMAC(key, data)
!             self.failUnless(h.hexdigest().upper() == digest.upper())
  
          md5test(chr(0x0b) * 16,
--- 6,15 ----
  class TestVectorsTestCase(unittest.TestCase):
  
!     def test_md5_vectors(self):
          # Test the HMAC module against test vectors from the RFC.
  
          def md5test(key, data, digest):
              h = hmac.HMAC(key, data)
!             self.assertEqual(h.hexdigest().upper(), digest.upper())
  
          md5test(chr(0x0b) * 16,
***************
*** 23,26 ****
--- 24,79 ----
                  chr(0xDD)*50,
                  "56be34521d144c88dbb8c733f0e8b3f6")
+ 
+         md5test("".join([chr(i) for i in range(1, 26)]),
+                 chr(0xCD) * 50,
+                 "697eaf0aca3a3aea3a75164746ffaa79")
+ 
+         md5test(chr(0x0C) * 16,
+                 "Test With Truncation",
+                 "56461ef2342edc00f9bab995690efd4c")
+ 
+         md5test(chr(0xAA) * 80,
+                 "Test Using Larger Than Block-Size Key - Hash Key First",
+                 "6b1ab7fe4bd7bf8f0b62e6ce61b9d0cd")
+ 
+         md5test(chr(0xAA) * 80,
+                 ("Test Using Larger Than Block-Size Key "
+                  "and Larger Than One Block-Size Data"),
+                 "6f630fad67cda0ee1fb1f562db3aa53e")
+ 
+     def test_sha_vectors(self):
+         def shatest(key, data, digest):
+             h = hmac.HMAC(key, data, digestmod=sha)
+             self.assertEqual(h.hexdigest().upper(), digest.upper())
+ 
+         shatest(chr(0x0b) * 20,
+                 "Hi There",
+                 "b617318655057264e28bc0b6fb378c8ef146be00")
+ 
+         shatest("Jefe",
+                 "what do ya want for nothing?",
+                 "effcdf6ae5eb2fa2d27416d5f184df9c259a7c79")
+ 
+         shatest(chr(0xAA)*20,
+                 chr(0xDD)*50,
+                 "125d7342b9ac11cd91a39af48aa17b4f63f175d3")
+ 
+         shatest("".join([chr(i) for i in range(1, 26)]),
+                 chr(0xCD) * 50,
+                 "4c9007f4026250c6bc8414f9bf50c86c2d7235da")
+ 
+         shatest(chr(0x0C) * 20,
+                 "Test With Truncation",
+                 "4c1a03424b55e07fe7f27be1d58bb9324a9a5a04")
+ 
+         shatest(chr(0xAA) * 80,
+                 "Test Using Larger Than Block-Size Key - Hash Key First",
+                 "aa4ae5e15272d00e95705637ce8a3b55ed402112")
+ 
+         shatest(chr(0xAA) * 80,
+                 ("Test Using Larger Than Block-Size Key "
+                  "and Larger Than One Block-Size Data"),
+                 "e8e99d0f45237d786d6bbaa7965c7808bbff1a91")
+ 
  
  class ConstructorTestCase(unittest.TestCase):