MCPcopy Create free account
hub / github.com/rthalley/dnspython / _test_dnssec_alg

Method _test_dnssec_alg

tests/test_dnssecalgs.py:48–79  ·  view source on GitHub ↗
(self, private_cls, key_size=None)

Source from the content-addressed store, hash-verified

46@unittest.skipUnless(dns.dnssec._have_pyca, "Python Cryptography cannot be imported")
47class DNSSECAlgorithm(unittest.TestCase):
48 def _test_dnssec_alg(self, private_cls, key_size=None):
49 public_cls = private_cls.public_cls
50
51 private_key = (
52 private_cls.generate(key_size) if key_size else private_cls.generate()
53 )
54
55 # sign random data
56 data = os.urandom(1024)
57 signature = private_key.sign(data, verify=True)
58
59 # validate signature using public key
60 public_key = private_key.public_key()
61 public_key.verify(signature, data)
62
63 # create DNSKEY
64 dnskey = public_key.to_dnskey()
65 dnskey2 = public_cls.from_dnskey(dnskey).to_dnskey()
66 self.assertEqual(dnskey, dnskey2)
67
68 # test cryptography keys
69 _ = private_cls(key=private_key.key)
70 _ = public_cls(key=public_key.key)
71
72 # to/from PEM
73 password = b"mekmitasdigoat"
74 private_pem = private_key.to_pem()
75 private_pem_encrypted = private_key.to_pem(password=password)
76 public_pem = public_key.to_pem()
77 _ = private_cls.from_pem(private_pem)
78 _ = private_cls.from_pem(private_pem_encrypted, password)
79 _ = public_cls.from_pem(public_pem)
80
81 def test_rsa(self):
82 self._test_dnssec_alg(PrivateRSAMD5, 2048)

Callers 4

test_rsaMethod · 0.95
test_dsaMethod · 0.95
test_ecdsaMethod · 0.95
test_eddsaMethod · 0.95

Calls 8

to_dnskeyMethod · 0.80
generateMethod · 0.45
signMethod · 0.45
public_keyMethod · 0.45
verifyMethod · 0.45
from_dnskeyMethod · 0.45
to_pemMethod · 0.45
from_pemMethod · 0.45

Tested by

no test coverage detected