refacor of PKCS8 parsing, added pkcs8 test

This commit is contained in:
Spitap
2022-08-01 00:49:39 +02:00
parent 20d9ca1e1c
commit 8e78ce7e13
4 changed files with 50 additions and 12 deletions
+12 -3
View File
@@ -41,6 +41,7 @@ class TestSignAndVerify(unittest.TestCase):
self.message = read_test_data("test.message")
self.key1024 = read_test_data("1024_testkey.key")
self.key2048 = read_test_data("2048_testkey.key")
self.key2048PKCS8 = read_test_data("2048_testkey_PKCS8.key")
def dnsfunc(self, domain, timeout=5):
_dns_responses = {
@@ -48,6 +49,7 @@ class TestSignAndVerify(unittest.TestCase):
'test2._domainkey.example.com.': read_test_data("1024_testkey_wo_markers.pub.rsa.txt"),
'test3._domainkey.example.com.': read_test_data("2048_testkey_wo_markers.pub.txt"),
'test4._domainkey.example.com.': read_test_data("2048_testkey_wo_markers.pub.rsa.txt"),
'test5._domainkey.example.com.': read_test_data("2048_testkey_PKCS8.key.pub.txt")
}
try:
domain = domain.decode('ascii')
@@ -56,7 +58,6 @@ class TestSignAndVerify(unittest.TestCase):
self.assertTrue(domain in _dns_responses,domain)
return _dns_responses[domain]
def test_verifies_SubjectPublicKeyInfo1024(self):
# A message verifies after being signed.
for header_algo in (b"simple", b"relaxed"):
@@ -67,8 +68,6 @@ class TestSignAndVerify(unittest.TestCase):
res = dkim.verify(sig + self.message, dnsfunc=self.dnsfunc)
self.assertTrue(res)
def test_verifies_RSAPublicKey1024(self):
# A message verifies after being signed.
for header_algo in (b"simple", b"relaxed"):
@@ -102,6 +101,16 @@ class TestSignAndVerify(unittest.TestCase):
self.assertTrue(res)
def test_verifies_RSAPublicKey2048PKCS8(self):
#A message verifies after being signed (with PKCS8 private key)
for header_algo in (b"simple", b"relaxed"):
for body_algo in (b"simple", b"relaxed"):
sig = dkim.sign(
self.message, b"test5", b"example.com", self.key2048PKCS8,
canonicalize=(header_algo, body_algo))
res = dkim.verify(sig + self.message, dnsfunc=self.dnsfunc)
self.assertTrue(res)
def test_suite():
from unittest import TestLoader
return TestLoader().loadTestsFromName(__name__)