Commit 893801ef authored by Jeremy Hylton's avatar Jeremy Hylton

Add more tests from RFC 2202.

parent 31fa845c
import hmac import hmac
import sha
import unittest import unittest
from test import test_support from test import test_support
class TestVectorsTestCase(unittest.TestCase): class TestVectorsTestCase(unittest.TestCase):
def test_vectors(self): def test_md5_vectors(self):
# Test the HMAC module against test vectors from the RFC. # Test the HMAC module against test vectors from the RFC.
def md5test(key, data, digest): def md5test(key, data, digest):
h = hmac.HMAC(key, data) h = hmac.HMAC(key, data)
self.failUnless(h.hexdigest().upper() == digest.upper()) self.assertEqual(h.hexdigest().upper(), digest.upper())
md5test(chr(0x0b) * 16, md5test(chr(0x0b) * 16,
"Hi There", "Hi There",
...@@ -23,6 +24,58 @@ class TestVectorsTestCase(unittest.TestCase): ...@@ -23,6 +24,58 @@ class TestVectorsTestCase(unittest.TestCase):
chr(0xDD)*50, chr(0xDD)*50,
"56be34521d144c88dbb8c733f0e8b3f6") "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): class ConstructorTestCase(unittest.TestCase):
def test_normal(self): def test_normal(self):
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment