import unittest import logging from aucoin import dsa logging.basicConfig(level=logging.DEBUG) class TestDSA(unittest.TestCase): def setUp(self): self.private, self.public = dsa.generate_keypair() self.data = b"Hello, world!" self.data_tampered = b"Goodbye, world!" self.signature_tampered = bytes(70) # 0x00...00 def test_sign_verify(self): signature = dsa.sign(self.private, self.data) self.assertTrue(dsa.verify(self.public, self.data, signature)) def test_reject_tampered_data(self): signature = dsa.sign(self.private, self.data) self.assertFalse(dsa.verify(self.public, self.data_tampered, signature)) def test_reject_tampered_signature(self): self.assertFalse(dsa.verify(self.public, self.data, self.signature_tampered)) if __name__ == '__main__': unittest.main()