]> wagner.pp.ru Git - oss/ctypescrypto.git/blobdiff - tests/testdigest.py
style fixes
[oss/ctypescrypto.git] / tests / testdigest.py
index 4c4b4edf86830265155edd304f9a37c49ef602d8..741c1d67c1808682a3aba317242c05ea47f353cd 100644 (file)
@@ -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()