X-Git-Url: http://wagner.pp.ru/gitweb/?a=blobdiff_plain;f=tests%2Ftestdigest.py;h=741c1d67c1808682a3aba317242c05ea47f353cd;hb=ff669c32aa77c9ebfb9c5371b2c8a9d41de614f8;hp=4c4b4edf86830265155edd304f9a37c49ef602d8;hpb=22338425226b926b97b2e821e4d7d2ea9b2f1b88;p=oss%2Fctypescrypto.git diff --git a/tests/testdigest.py b/tests/testdigest.py index 4c4b4ed..741c1d6 100644 --- a/tests/testdigest.py +++ b/tests/testdigest.py @@ -9,52 +9,111 @@ class TestDigestType(unittest.TestCase): 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 ") @@ -93,6 +152,9 @@ class TestAlgo(unittest.TestCase): 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()