summaryrefslogtreecommitdiff
path: root/tests/test_evp.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_evp.py')
-rw-r--r--tests/test_evp.py54
1 files changed, 54 insertions, 0 deletions
diff --git a/tests/test_evp.py b/tests/test_evp.py
index fff7127..c98b50c 100644
--- a/tests/test_evp.py
+++ b/tests/test_evp.py
@@ -248,6 +248,60 @@ class EVPTestCase(unittest.TestCase):
pubkey.verify_update(b'test message not')
self.assertEqual(pubkey.verify_final(sig), 0)
+ @unittest.skipIf(m2.OPENSSL_VERSION_NUMBER < 0x10101000,
+ 'Relies on support for Ed25519 which was introduced in OpenSSL 1.1.1')
+ def test_digest_verify(self):
+ pkey = EVP.load_key('tests/ed25519.priv.pem')
+ pkey.reset_context(None)
+ pkey.digest_sign_init()
+ sig = pkey.digest_sign(b'test message')
+
+ # OK
+ pkey = EVP.load_key_pubkey('tests/ed25519.pub.pem')
+ pkey.reset_context(None)
+ pkey.digest_verify_init()
+ self.assertEqual(pkey.digest_verify(sig, b'test message'), 1)
+
+ # wrong public key
+ pkey = EVP.load_key_pubkey('tests/ed25519.pub2.pem')
+ pkey.reset_context(None)
+ pkey.digest_verify_init()
+ self.assertEqual(pkey.digest_verify(sig, b'test message'), 0)
+
+ # wrong message
+ pkey = EVP.load_key_pubkey('tests/ed25519.pub.pem')
+ pkey.reset_context(None)
+ pkey.digest_verify_init()
+ self.assertEqual(pkey.digest_verify(sig, b'test message not'), 0)
+
+ def test_digest_verify_final(self):
+ pkey = EVP.load_key('tests/ec.priv.pem')
+ pkey.reset_context('sha256')
+ pkey.digest_sign_init()
+ pkey.digest_sign_update(b'test message')
+ sig = pkey.digest_sign_final()
+
+ # OK
+ pkey = EVP.load_key_pubkey('tests/ec.pub.pem')
+ pkey.reset_context('sha256')
+ pkey.digest_verify_init()
+ pkey.digest_verify_update(b'test message')
+ self.assertEqual(pkey.digest_verify_final(sig), 1)
+
+ # wrong public key
+ pkey = EVP.load_key_pubkey('tests/ec.pub2.pem')
+ pkey.reset_context('sha256')
+ pkey.digest_verify_init()
+ pkey.digest_verify_update(b'test message')
+ self.assertEqual(pkey.digest_verify_final(sig), 0)
+
+ # wrong message
+ pkey = EVP.load_key_pubkey('tests/ec.pub.pem')
+ pkey.reset_context('sha256')
+ pkey.digest_verify_init()
+ pkey.digest_verify_update(b'test message not')
+ self.assertEqual(pkey.digest_verify_final(sig), 0)
+
def test_load_bad(self):
with self.assertRaises(BIO.BIOError):
EVP.load_key('thisdoesnotexist-dfgh56789')