diff options
-rw-r--r-- | rpkid/left-right-protocol-samples/pdu.053.xml | 2 | ||||
-rw-r--r-- | rpkid/left-right-protocol-samples/pdu.056.xml | 2 | ||||
-rw-r--r-- | rpkid/left-right-protocol-samples/pdu.058.xml | 2 | ||||
-rw-r--r-- | rpkid/left-right-schema.rng | 170 | ||||
-rw-r--r-- | rpkid/rpki/relaxng.py | 172 | ||||
-rwxr-xr-x | rpkid/xml-parse-test.py | 52 |
6 files changed, 213 insertions, 187 deletions
diff --git a/rpkid/left-right-protocol-samples/pdu.053.xml b/rpkid/left-right-protocol-samples/pdu.053.xml index 64546be7..768a6b86 100644 --- a/rpkid/left-right-protocol-samples/pdu.053.xml +++ b/rpkid/left-right-protocol-samples/pdu.053.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="US-ASCII"?> <!--Automatically generated, do not edit.--> <msg xmlns="http://www.hactrn.net/uris/rpki/left-right-spec/" version="1"> - <route_origin action="set" type="query" self_id="42" route_origin_id="88" suppress_publication="yes" as_number="12345" exact_match="true" ipv4="10.0.0.44/32,10.2.0.6-10.2.0.77" ipv6="2002:a00::/48,2002:a02:6::-2002:a02:4d::"/> + <route_origin action="set" type="query" self_id="42" route_origin_id="88" suppress_publication="yes" as_number="12345" exact_match="true" ipv4="10.0.0.44/32" ipv6="2002:a00::/48"/> </msg> diff --git a/rpkid/left-right-protocol-samples/pdu.056.xml b/rpkid/left-right-protocol-samples/pdu.056.xml index 1ad64cce..3a3e4fa2 100644 --- a/rpkid/left-right-protocol-samples/pdu.056.xml +++ b/rpkid/left-right-protocol-samples/pdu.056.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="US-ASCII"?> <!--Automatically generated, do not edit.--> <msg xmlns="http://www.hactrn.net/uris/rpki/left-right-spec/" version="1"> - <route_origin action="get" type="reply" self_id="42" route_origin_id="88" as_number="12345" exact_match="true" ipv4="10.0.0.44/32,10.2.0.6-10.2.0.77" ipv6="2002:a00::/48,2002:a02:6::-2002:a02:4d::"/> + <route_origin action="get" type="reply" self_id="42" route_origin_id="88" as_number="12345" exact_match="true" ipv4="10.0.0.44/32" ipv6="2002:a00::/48"/> </msg> diff --git a/rpkid/left-right-protocol-samples/pdu.058.xml b/rpkid/left-right-protocol-samples/pdu.058.xml index d4d72210..7382c12b 100644 --- a/rpkid/left-right-protocol-samples/pdu.058.xml +++ b/rpkid/left-right-protocol-samples/pdu.058.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="US-ASCII"?> <!--Automatically generated, do not edit.--> <msg xmlns="http://www.hactrn.net/uris/rpki/left-right-spec/" version="1"> - <route_origin action="list" type="reply" self_id="42" route_origin_id="88" as_number="12345" ipv4="10.0.0.44/32,10.2.0.6-10.2.0.77" ipv6="2002:a00::/48,2002:a02:6::-2002:a02:4d::"/> + <route_origin action="list" type="reply" self_id="42" route_origin_id="88" as_number="12345" ipv4="10.0.0.44/32" ipv6="2002:a00::/48"/> </msg> diff --git a/rpkid/left-right-schema.rng b/rpkid/left-right-schema.rng index 0068ca32..93e98643 100644 --- a/rpkid/left-right-schema.rng +++ b/rpkid/left-right-schema.rng @@ -23,7 +23,7 @@ <ref name="parent_elt"/> <ref name="child_elt"/> <ref name="repository_elt"/> - <ref name="ro_elt"/> + <ref name="route_origin_elt"/> <ref name="list_resources_elt"/> <ref name="report_error_elt"/> </choice> @@ -142,10 +142,52 @@ </define> <!-- Base definition for all fields that are really just SQL primary indices --> <define name="sql_id"> + <data type="nonNegativeInteger"/> + </define> + <!-- URIs --> + <define name="uri"> + <data type="anyURI"> + <param name="maxLength">4096</param> + </data> + </define> + <!-- Name fields imported from up-down protocol --> + <define name="up_down_name"> <data type="token"> <param name="maxLength">1024</param> </data> </define> + <!-- Resource lists --> + <define name="asn_list"> + <data type="string"> + <param name="maxLength">512000</param> + <param name="pattern">[\-,/0-9]*</param> + </data> + </define> + <define name="ipv4_address_list"> + <data type="string"> + <param name="maxLength">512000</param> + <param name="pattern">[\-,/.0-9]*</param> + </data> + </define> + <define name="ipv6_address_list"> + <data type="string"> + <param name="maxLength">512000</param> + <param name="pattern">[\-,/:0-9a-fA-F]*</param> + </data> + </define> + <!-- Prefix resource lists, same as address resource lists not no ranges allowed --> + <define name="ipv4_prefix_list"> + <data type="string"> + <param name="maxLength">512000</param> + <param name="pattern">[,/.0-9]*</param> + </data> + </define> + <define name="ipv6_prefix_list"> + <data type="string"> + <param name="maxLength">512000</param> + <param name="pattern">[,/:0-9a-fA-F]*</param> + </data> + </define> <!-- <self/> element --> <define name="self_bool"> <optional> @@ -441,44 +483,28 @@ <define name="parent_payload"> <optional> <attribute name="peer_contact_uri"> - <data type="anyURI"> - <param name="maxLength">1024</param> - </data> + <ref name="uri"/> </attribute> </optional> <optional> <attribute name="sia_base"> - <data type="anyURI"> - <param name="maxLength">1024</param> - </data> + <ref name="uri"/> </attribute> </optional> <optional> - <attribute name="bsc_id"> - <data type="token"> - <param name="maxLength">1024</param> - </data> - </attribute> + <ref name="bsc_id"/> </optional> <optional> - <attribute name="repository_id"> - <data type="token"> - <param name="maxLength">1024</param> - </data> - </attribute> + <ref name="repository_id"/> </optional> <optional> <attribute name="sender_name"> - <data type="token"> - <param name="maxLength">1024</param> - </data> + <ref name="up_down_name"/> </attribute> </optional> <optional> <attribute name="recipient_name"> - <data type="token"> - <param name="maxLength">1024</param> - </data> + <ref name="up_down_name"/> </attribute> </optional> <optional> @@ -591,11 +617,7 @@ </define> <define name="child_payload"> <optional> - <attribute name="bsc_id"> - <data type="token"> - <param name="maxLength">1024</param> - </data> - </attribute> + <ref name="bsc_id"/> </optional> <optional> <element name="bpki_cert"> @@ -691,17 +713,11 @@ <define name="repository_payload"> <optional> <attribute name="peer_contact_uri"> - <data type="anyURI"> - <param name="maxLength">1024</param> - </data> + <ref name="uri"/> </attribute> </optional> <optional> - <attribute name="bsc_id"> - <data type="token"> - <param name="maxLength">1024</param> - </data> - </attribute> + <ref name="bsc_id"/> </optional> <optional> <element name="bpki_cms_cert"> @@ -797,24 +813,22 @@ </element> </define> <!-- <route_origin/> element --> - <define name="ro_id"> + <define name="route_origin_id"> <attribute name="route_origin_id"> <ref name="sql_id"/> </attribute> </define> - <define name="ro_bool"> + <define name="route_origin_bool"> <optional> <attribute name="suppress_publication"> <value>yes</value> </attribute> </optional> </define> - <define name="ro_payload"> + <define name="route_origin_payload"> <optional> <attribute name="as_number"> - <data type="token"> - <param name="maxLength">1024</param> - </data> + <data type="positiveInteger"/> </attribute> </optional> <optional> @@ -824,91 +838,87 @@ </optional> <optional> <attribute name="ipv4"> - <data type="token"> - <param name="maxLength">1024</param> - </data> + <ref name="ipv4_prefix_list"/> </attribute> </optional> <optional> <attribute name="ipv6"> - <data type="token"> - <param name="maxLength">1024</param> - </data> + <ref name="ipv6_prefix_list"/> </attribute> </optional> </define> - <define name="ro_elt" combine="choice"> + <define name="route_origin_elt" combine="choice"> <element name="route_origin"> <ref name="ctl_cq"/> <ref name="self_id"/> - <ref name="ro_bool"/> - <ref name="ro_payload"/> + <ref name="route_origin_bool"/> + <ref name="route_origin_payload"/> </element> </define> - <define name="ro_elt" combine="choice"> + <define name="route_origin_elt" combine="choice"> <element name="route_origin"> <ref name="ctl_cr"/> <ref name="self_id"/> - <ref name="ro_id"/> + <ref name="route_origin_id"/> </element> </define> - <define name="ro_elt" combine="choice"> + <define name="route_origin_elt" combine="choice"> <element name="route_origin"> <ref name="ctl_sq"/> <ref name="self_id"/> - <ref name="ro_id"/> - <ref name="ro_bool"/> - <ref name="ro_payload"/> + <ref name="route_origin_id"/> + <ref name="route_origin_bool"/> + <ref name="route_origin_payload"/> </element> </define> - <define name="ro_elt" combine="choice"> + <define name="route_origin_elt" combine="choice"> <element name="route_origin"> <ref name="ctl_sr"/> <ref name="self_id"/> - <ref name="ro_id"/> + <ref name="route_origin_id"/> </element> </define> - <define name="ro_elt" combine="choice"> + <define name="route_origin_elt" combine="choice"> <element name="route_origin"> <ref name="ctl_gq"/> <ref name="self_id"/> - <ref name="ro_id"/> + <ref name="route_origin_id"/> </element> </define> - <define name="ro_elt" combine="choice"> + <define name="route_origin_elt" combine="choice"> <element name="route_origin"> <ref name="ctl_gr"/> <ref name="self_id"/> - <ref name="ro_id"/> - <ref name="ro_payload"/> + <ref name="route_origin_id"/> + <ref name="route_origin_payload"/> </element> </define> - <define name="ro_elt" combine="choice"> + <define name="route_origin_elt" combine="choice"> <element name="route_origin"> <ref name="ctl_lq"/> <ref name="self_id"/> </element> </define> - <define name="ro_elt" combine="choice"> + <define name="route_origin_elt" combine="choice"> <element name="route_origin"> <ref name="ctl_lr"/> <ref name="self_id"/> - <ref name="ro_id"/> - <ref name="ro_payload"/> + <ref name="route_origin_id"/> + <ref name="route_origin_payload"/> </element> </define> - <define name="ro_elt" combine="choice"> + <define name="route_origin_elt" combine="choice"> <element name="route_origin"> <ref name="ctl_dq"/> <ref name="self_id"/> - <ref name="ro_id"/> + <ref name="route_origin_id"/> </element> </define> - <define name="ro_elt" combine="choice"> + <define name="route_origin_elt" combine="choice"> <element name="route_origin"> <ref name="ctl_dr"/> <ref name="self_id"/> - <ref name="ro_id"/> + <ref name="route_origin_id"/> </element> </define> <!-- <list_resources/> element --> @@ -931,8 +941,8 @@ <ref name="self_id"/> <ref name="child_id"/> <attribute name="valid_until"> - <data type="token"> - <param name="maxLength">1024</param> + <data type="dateTime"> + <param name="pattern">.*Z</param> </data> </attribute> <optional> @@ -944,23 +954,17 @@ </optional> <optional> <attribute name="as"> - <data type="token"> - <param name="maxLength">1024</param> - </data> + <ref name="asn_list"/> </attribute> </optional> <optional> <attribute name="ipv4"> - <data type="token"> - <param name="maxLength">1024</param> - </data> + <ref name="ipv4_address_list"/> </attribute> </optional> <optional> <attribute name="ipv6"> - <data type="token"> - <param name="maxLength">1024</param> - </data> + <ref name="ipv6_address_list"/> </attribute> </optional> </group> diff --git a/rpkid/rpki/relaxng.py b/rpkid/rpki/relaxng.py index 7f928c80..84ed29d1 100644 --- a/rpkid/rpki/relaxng.py +++ b/rpkid/rpki/relaxng.py @@ -6,7 +6,7 @@ import lxml.etree ## Parsed RelaxNG left_right schema left_right = lxml.etree.RelaxNG(lxml.etree.fromstring('''<?xml version="1.0" encoding="UTF-8"?> <!-- - $Id: left-right-schema.rng 1730 2008-05-01 07:07:28Z sra $ + $Id: left-right-schema.rnc 1788 2008-05-16 21:48:48Z sra $ RelaxNG (Compact Syntax) Schema for RPKI left-right protocol. @@ -29,7 +29,7 @@ left_right = lxml.etree.RelaxNG(lxml.etree.fromstring('''<?xml version="1.0" enc <ref name="parent_elt"/> <ref name="child_elt"/> <ref name="repository_elt"/> - <ref name="ro_elt"/> + <ref name="route_origin_elt"/> <ref name="list_resources_elt"/> <ref name="report_error_elt"/> </choice> @@ -148,10 +148,52 @@ left_right = lxml.etree.RelaxNG(lxml.etree.fromstring('''<?xml version="1.0" enc </define> <!-- Base definition for all fields that are really just SQL primary indices --> <define name="sql_id"> + <data type="nonNegativeInteger"/> + </define> + <!-- URIs --> + <define name="uri"> + <data type="anyURI"> + <param name="maxLength">4096</param> + </data> + </define> + <!-- Name fields imported from up-down protocol --> + <define name="up_down_name"> <data type="token"> <param name="maxLength">1024</param> </data> </define> + <!-- Resource lists --> + <define name="asn_list"> + <data type="string"> + <param name="maxLength">512000</param> + <param name="pattern">[\-,/0-9]*</param> + </data> + </define> + <define name="ipv4_address_list"> + <data type="string"> + <param name="maxLength">512000</param> + <param name="pattern">[\-,/.0-9]*</param> + </data> + </define> + <define name="ipv6_address_list"> + <data type="string"> + <param name="maxLength">512000</param> + <param name="pattern">[\-,/:0-9a-fA-F]*</param> + </data> + </define> + <!-- Prefix resource lists, same as address resource lists not no ranges allowed --> + <define name="ipv4_prefix_list"> + <data type="string"> + <param name="maxLength">512000</param> + <param name="pattern">[,/.0-9]*</param> + </data> + </define> + <define name="ipv6_prefix_list"> + <data type="string"> + <param name="maxLength">512000</param> + <param name="pattern">[,/:0-9a-fA-F]*</param> + </data> + </define> <!-- <self/> element --> <define name="self_bool"> <optional> @@ -447,44 +489,28 @@ left_right = lxml.etree.RelaxNG(lxml.etree.fromstring('''<?xml version="1.0" enc <define name="parent_payload"> <optional> <attribute name="peer_contact_uri"> - <data type="anyURI"> - <param name="maxLength">1024</param> - </data> + <ref name="uri"/> </attribute> </optional> <optional> <attribute name="sia_base"> - <data type="anyURI"> - <param name="maxLength">1024</param> - </data> + <ref name="uri"/> </attribute> </optional> <optional> - <attribute name="bsc_id"> - <data type="token"> - <param name="maxLength">1024</param> - </data> - </attribute> + <ref name="bsc_id"/> </optional> <optional> - <attribute name="repository_id"> - <data type="token"> - <param name="maxLength">1024</param> - </data> - </attribute> + <ref name="repository_id"/> </optional> <optional> <attribute name="sender_name"> - <data type="token"> - <param name="maxLength">1024</param> - </data> + <ref name="up_down_name"/> </attribute> </optional> <optional> <attribute name="recipient_name"> - <data type="token"> - <param name="maxLength">1024</param> - </data> + <ref name="up_down_name"/> </attribute> </optional> <optional> @@ -597,11 +623,7 @@ left_right = lxml.etree.RelaxNG(lxml.etree.fromstring('''<?xml version="1.0" enc </define> <define name="child_payload"> <optional> - <attribute name="bsc_id"> - <data type="token"> - <param name="maxLength">1024</param> - </data> - </attribute> + <ref name="bsc_id"/> </optional> <optional> <element name="bpki_cert"> @@ -697,17 +719,11 @@ left_right = lxml.etree.RelaxNG(lxml.etree.fromstring('''<?xml version="1.0" enc <define name="repository_payload"> <optional> <attribute name="peer_contact_uri"> - <data type="anyURI"> - <param name="maxLength">1024</param> - </data> + <ref name="uri"/> </attribute> </optional> <optional> - <attribute name="bsc_id"> - <data type="token"> - <param name="maxLength">1024</param> - </data> - </attribute> + <ref name="bsc_id"/> </optional> <optional> <element name="bpki_cms_cert"> @@ -803,24 +819,22 @@ left_right = lxml.etree.RelaxNG(lxml.etree.fromstring('''<?xml version="1.0" enc </element> </define> <!-- <route_origin/> element --> - <define name="ro_id"> + <define name="route_origin_id"> <attribute name="route_origin_id"> <ref name="sql_id"/> </attribute> </define> - <define name="ro_bool"> + <define name="route_origin_bool"> <optional> <attribute name="suppress_publication"> <value>yes</value> </attribute> </optional> </define> - <define name="ro_payload"> + <define name="route_origin_payload"> <optional> <attribute name="as_number"> - <data type="token"> - <param name="maxLength">1024</param> - </data> + <data type="positiveInteger"/> </attribute> </optional> <optional> @@ -830,91 +844,87 @@ left_right = lxml.etree.RelaxNG(lxml.etree.fromstring('''<?xml version="1.0" enc </optional> <optional> <attribute name="ipv4"> - <data type="token"> - <param name="maxLength">1024</param> - </data> + <ref name="ipv4_prefix_list"/> </attribute> </optional> <optional> <attribute name="ipv6"> - <data type="token"> - <param name="maxLength">1024</param> - </data> + <ref name="ipv6_prefix_list"/> </attribute> </optional> </define> - <define name="ro_elt" combine="choice"> + <define name="route_origin_elt" combine="choice"> <element name="route_origin"> <ref name="ctl_cq"/> <ref name="self_id"/> - <ref name="ro_bool"/> - <ref name="ro_payload"/> + <ref name="route_origin_bool"/> + <ref name="route_origin_payload"/> </element> </define> - <define name="ro_elt" combine="choice"> + <define name="route_origin_elt" combine="choice"> <element name="route_origin"> <ref name="ctl_cr"/> <ref name="self_id"/> - <ref name="ro_id"/> + <ref name="route_origin_id"/> </element> </define> - <define name="ro_elt" combine="choice"> + <define name="route_origin_elt" combine="choice"> <element name="route_origin"> <ref name="ctl_sq"/> <ref name="self_id"/> - <ref name="ro_id"/> - <ref name="ro_bool"/> - <ref name="ro_payload"/> + <ref name="route_origin_id"/> + <ref name="route_origin_bool"/> + <ref name="route_origin_payload"/> </element> </define> - <define name="ro_elt" combine="choice"> + <define name="route_origin_elt" combine="choice"> <element name="route_origin"> <ref name="ctl_sr"/> <ref name="self_id"/> - <ref name="ro_id"/> + <ref name="route_origin_id"/> </element> </define> - <define name="ro_elt" combine="choice"> + <define name="route_origin_elt" combine="choice"> <element name="route_origin"> <ref name="ctl_gq"/> <ref name="self_id"/> - <ref name="ro_id"/> + <ref name="route_origin_id"/> </element> </define> - <define name="ro_elt" combine="choice"> + <define name="route_origin_elt" combine="choice"> <element name="route_origin"> <ref name="ctl_gr"/> <ref name="self_id"/> - <ref name="ro_id"/> - <ref name="ro_payload"/> + <ref name="route_origin_id"/> + <ref name="route_origin_payload"/> </element> </define> - <define name="ro_elt" combine="choice"> + <define name="route_origin_elt" combine="choice"> <element name="route_origin"> <ref name="ctl_lq"/> <ref name="self_id"/> </element> </define> - <define name="ro_elt" combine="choice"> + <define name="route_origin_elt" combine="choice"> <element name="route_origin"> <ref name="ctl_lr"/> <ref name="self_id"/> - <ref name="ro_id"/> - <ref name="ro_payload"/> + <ref name="route_origin_id"/> + <ref name="route_origin_payload"/> </element> </define> - <define name="ro_elt" combine="choice"> + <define name="route_origin_elt" combine="choice"> <element name="route_origin"> <ref name="ctl_dq"/> <ref name="self_id"/> - <ref name="ro_id"/> + <ref name="route_origin_id"/> </element> </define> - <define name="ro_elt" combine="choice"> + <define name="route_origin_elt" combine="choice"> <element name="route_origin"> <ref name="ctl_dr"/> <ref name="self_id"/> - <ref name="ro_id"/> + <ref name="route_origin_id"/> </element> </define> <!-- <list_resources/> element --> @@ -937,8 +947,8 @@ left_right = lxml.etree.RelaxNG(lxml.etree.fromstring('''<?xml version="1.0" enc <ref name="self_id"/> <ref name="child_id"/> <attribute name="valid_until"> - <data type="token"> - <param name="maxLength">1024</param> + <data type="dateTime"> + <param name="pattern">.*Z</param> </data> </attribute> <optional> @@ -950,23 +960,17 @@ left_right = lxml.etree.RelaxNG(lxml.etree.fromstring('''<?xml version="1.0" enc </optional> <optional> <attribute name="as"> - <data type="token"> - <param name="maxLength">1024</param> - </data> + <ref name="asn_list"/> </attribute> </optional> <optional> <attribute name="ipv4"> - <data type="token"> - <param name="maxLength">1024</param> - </data> + <ref name="ipv4_address_list"/> </attribute> </optional> <optional> <attribute name="ipv6"> - <data type="token"> - <param name="maxLength">1024</param> - </data> + <ref name="ipv6_address_list"/> </attribute> </optional> </group> diff --git a/rpkid/xml-parse-test.py b/rpkid/xml-parse-test.py index 3e3b20ef..15e787da 100755 --- a/rpkid/xml-parse-test.py +++ b/rpkid/xml-parse-test.py @@ -17,43 +17,61 @@ import glob, xml.sax, lxml.etree, lxml.sax, POW, POW.pkix import rpki.up_down, rpki.left_right, rpki.relaxng -verbose = True +verbose = False def test(fileglob, rng, sax_handler, encoding, tester = None): files = glob.glob(fileglob) files.sort() for f in files: - print "\n<!--", f, "-->" + print "<!--", f, "-->" handler = sax_handler() elt_in = lxml.etree.parse(f).getroot() + if verbose: + print "<!-- Input -->" + print lxml.etree.tostring(elt_in, pretty_print = True, encoding = encoding, xml_declaration = True) rng.assertValid(elt_in) lxml.sax.saxify(elt_in, handler) elt_out = handler.result.toXML() + if verbose: + print "<!-- Output -->" + print lxml.etree.tostring(elt_out, pretty_print = True, encoding = encoding, xml_declaration = True) rng.assertValid(elt_out) if (tester): tester(elt_in, elt_out, handler.result) - print lxml.etree.tostring(elt_out, pretty_print = True, encoding = encoding, xml_declaration = True) + if verbose: + print -def pprint_cert(cert): - print cert.get_POW().pprint() +def pprint(pairs): + if verbose: + for thing, name in pairs: + if thing is not None: + print "[%s]" % name + print thing.get_POW().pprint() def ud_tester(elt_in, elt_out, msg): assert isinstance(msg, rpki.up_down.message_pdu) - if verbose: - if isinstance(msg.payload, rpki.up_down.list_response_pdu): - for c in msg.payload.classes: - for i in range(len(c.certs)): - print "[Certificate #%d]" % i - pprint_cert(c.certs[i].cert) - print "[Issuer]" - pprint_cert(c.issuer) + if isinstance(msg.payload, rpki.up_down.list_response_pdu): + for c in msg.payload.classes: + pprint([(c.certs[i].cert, ("%s certificate #%d" % (c.class_name, i))) for i in xrange(len(c.certs))] + [(c.issuer, ("%s issuer" % c.class_name))]) def lr_tester(elt_in, elt_out, msg): assert isinstance(msg, rpki.left_right.msg) - if verbose: - for bsc in [x for x in msg if isinstance(x, rpki.left_right.bsc_elt)]: - if bsc.signing_cert is not None: - pprint_cert(bsc.signing_cert) + for obj in msg: + if isinstance(obj, rpki.left_right.self_elt): + pprint(((obj.bpki_cert, "BPKI cert"), + (obj.bpki_glue, "BPKI glue"))) + if isinstance(obj, rpki.left_right.bsc_elt): + pprint(((obj.signing_cert, "Signing certificate"), + (obj.signing_cert_crl, "Signing certificate CRL"))) + # (obj.pkcs10_request, "PKCS #10 request") + if isinstance(obj, (rpki.left_right.parent_elt, rpki.left_right.repository_elt)): + pprint(((obj.bpki_cms_cert, "CMS certificate"), + (obj.bpki_cms_glue, "CMS glue"), + (obj.bpki_https_cert, "HTTPS certificate"), + (obj.bpki_https_glue, "HTTPS glue"))) + if isinstance(obj, rpki.left_right.child_elt): + pprint(((obj.bpki_cert, "Certificate"), + (obj.bpki_glue, "Glue"))) test(fileglob = "up-down-protocol-samples/*.xml", rng = rpki.relaxng.up_down, |