self.assertEqual(d.digest_size(),16)
self.assertEqual(d.block_size(),64)
self.assertEqual(d.oid(),Oid("md4"))
+ self.assertEqual(d.name,'md4')
def test_md5(self):
d=digest.DigestType("md5")
self.assertEqual(d.digest_size(),16)
self.assertEqual(d.block_size(),64)
self.assertEqual(d.oid(),Oid("md5"))
+ self.assertEqual(d.name,'md5')
def test_sha1(self):
d=digest.DigestType("sha1")
self.assertEqual(d.digest_size(),20)
self.assertEqual(d.block_size(),64)
self.assertEqual(d.oid(),Oid("sha1"))
+ self.assertEqual(d.name,'sha1')
def test_sha256(self):
d=digest.DigestType("sha256")
self.assertEqual(d.digest_size(),32)
self.assertEqual(d.block_size(),64)
self.assertEqual(d.oid(),Oid("sha256"))
+ self.assertEqual(d.name,'sha256')
def test_sha384(self):
d=digest.DigestType("sha384")
self.assertEqual(d.digest_size(),48)
self.assertEqual(d.block_size(),128)
self.assertEqual(d.oid(),Oid("sha384"))
+ self.assertEqual(d.name,'sha384')
def test_sha512(self):
d=digest.DigestType("sha512")
self.assertEqual(d.digest_size(),64)
self.assertEqual(d.block_size(),128)
self.assertEqual(d.oid(),Oid("sha512"))
-
+ self.assertEqual(d.name,'sha512')
+ def test_createfromoid(self):
+ oid=Oid('sha256')
+ d=digest.DigestType(oid)
+ self.assertEqual(d.digest_size(),32)
+ self.assertEqual(d.block_size(),64)
+ self.assertEqual(d.oid(),Oid("sha256"))
+ self.assertEqual(d.name,'sha256')
+ def test_createfromEVP_MD(self):
+ d1=digest.DigestType("sha256")
+ d2=digest.DigestType(None)
+ with self.assertRaises(AttributeError):
+ s=d2.name
+ d2.digest=d1.digest
+ self.assertEqual(d2.digest_size(),32)
+ self.assertEqual(d2.block_size(),64)
+ self.assertEqual(d2.oid(),Oid("sha256"))
+ self.assertEqual(d2.name,'sha256')
+ def test_invalidDigest(self):
+ with self.assertRaises(digest.DigestError):
+ d=digest.DigestType("no-such-digest")
+
class TestIface(unittest.TestCase):
""" Test all methods with one algorithms """
+ msg="A quick brown fox jumps over the lazy dog."
+ dgst="00CFFE7312BF9CA73584F24BDF7DF1D028340397"
def test_cons(self):
md=digest.DigestType("sha1")
dgst=digest.Digest(md)
- dgst.update("A quick brown fox jumps over the lazy dog.")
+ dgst.update(self.msg)
self.assertEqual(dgst.digest_size,20)
- self.assertEqual(dgst.hexdigest(),"00CFFE7312BF9CA73584F24BDF7DF1D028340397")
+ self.assertEqual(dgst.hexdigest(),self.dgst)
+ def test_digestwithdata(self):
+ md=digest.DigestType("sha1")
+ dgst=digest.Digest(md)
+ self.assertEqual(dgst.digest(self.msg),b16decode(self.dgst))
+ def test_length(self):
+ l=len(self.msg)
+ msg=self.msg+" Dog barks furiously."
+ dgst=digest.new("sha1")
+ dgst.update(msg,length=l)
+ self.assertEqual(dgst.hexdigest(),self.dgst)
+ def test_badlength(self):
+ l=len(self.msg)
+ dgst=digest.new("sha1")
+ with self.assertRaises(ValueError):
+ dgst.update(self.msg,length=l+1)
def test_bindigest(self):
dgst=digest.new("sha1")
- dgst.update("A quick brown fox jumps over the lazy dog.")
+ dgst.update(self.msg)
self.assertEqual(dgst.digest_size,20)
- self.assertEqual(dgst.digest(),b16decode("00CFFE7312BF9CA73584F24BDF7DF1D028340397",True))
+ self.assertEqual(dgst.digest(),b16decode(self.dgst,True))
def test_duplicatedigest(self):
dgst=digest.new("sha1")
- dgst.update("A quick brown fox jumps over the lazy dog.")
+ dgst.update(self.msg)
v1=dgst.digest()
v2=dgst.digest()
self.assertEqual(v1,v2)
+ def test_updatefinalized(self):
+ dgst=digest.new("sha1")
+ dgst.update(self.msg)
+ h=dgst.hexdigest()
+ with self.assertRaises(digest.DigestError):
+ dgst.update(self.msg)
+ def test_wrongtype(self):
+ dgst=digest.new("sha1")
+ with self.assertRaises(TypeError):
+ dgst.update(['a','b','c'])
+ with self.assertRaises(TypeError):
+ dgst.update(18)
+ with self.assertRaises(TypeError):
+ dgst.update({"a":"b","c":"D"})
+ with self.assertRaises(TypeError):
+ dgst.update(u'\u0430\u0431')
def test_copy(self):
dgst=digest.new("sha1")
dgst.update("A quick brown fox jumps over ")
self.assertEqual(d.digest_size,64)
d.update("A quick brown fox jumps over the lazy dog.")
self.assertEqual(d.hexdigest(),"3045575CF3B873DD656F5F3426E04A4ACD11950BB2538772EE14867002B408E21FF18EF7F7B2CAB484A3C1C0BE3F8ACC4AED536A427353C7748DC365FC1A8646")
+ def test_wrongdigest(self):
+ with self.assertRaises(digest.DigestError):
+ dgst=digest.new("no-such-digest")
if __name__ == "__main__":
unittest.main()