From: Petr Špaček Date: Thu, 18 Jun 2020 09:24:10 +0000 (+0200) Subject: DS: support mnemonic format from RFC 4034 section 5.3 X-Git-Tag: v2.0.0rc1~47^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0e7e20c1d0b901282804839cb3401a744304788d;p=thirdparty%2Fdnspython.git DS: support mnemonic format from RFC 4034 section 5.3 --- diff --git a/dns/rdtypes/dsbase.py b/dns/rdtypes/dsbase.py index 4f082c7f..59f6e834 100644 --- a/dns/rdtypes/dsbase.py +++ b/dns/rdtypes/dsbase.py @@ -46,7 +46,7 @@ class DSBase(dns.rdata.Rdata): def from_text(cls, rdclass, rdtype, tok, origin=None, relativize=True, relativize_to=None): key_tag = tok.get_uint16() - algorithm = tok.get_uint8() + algorithm = dns.dnssec.algorithm_from_text(tok.get_string()) digest_type = tok.get_uint8() chunks = [] while 1: diff --git a/tests/test_dnssec.py b/tests/test_dnssec.py index c10becd1..71d081e9 100644 --- a/tests/test_dnssec.py +++ b/tests/test_dnssec.py @@ -193,6 +193,11 @@ abs_ed448_mx_rrsig_2 = dns.rrset.from_text('example.com.', 3600, 'IN', 'RRSIG', when5 = 1440021600 +class DNSSECMakeDSTestCase(unittest.TestCase): + def testMnemonicParser(self): + good_ds_mnemonic = dns.rdata.from_text(dns.rdataclass.IN, dns.rdatatype.DS, + '57349 RSASHA1 2 53A79A3E7488AB44FFC56B2D1109F0699D1796DD977E72108B841F96 E47D7013') + self.assertEqual(good_ds, good_ds_mnemonic) @unittest.skipUnless(dns.dnssec._have_pyca, "Python Cryptography cannot be imported")