aboutsummaryrefslogtreecommitdiff
path: root/scripts/xml-parse-test.py
diff options
context:
space:
mode:
authorRob Austein <sra@hactrn.net>2007-06-26 05:32:27 +0000
committerRob Austein <sra@hactrn.net>2007-06-26 05:32:27 +0000
commit717ee55db215241bd5efd8502667baf4c099e998 (patch)
treeeddf5176d41ff154e7d239fbbe867336cbb7def0 /scripts/xml-parse-test.py
parent78a8e76bef9a0d8f3de3b7e79c81946ab8681a38 (diff)
Checkpoint
svn path=/scripts/xml-parse-test.py; revision=687
Diffstat (limited to 'scripts/xml-parse-test.py')
-rwxr-xr-xscripts/xml-parse-test.py83
1 files changed, 53 insertions, 30 deletions
diff --git a/scripts/xml-parse-test.py b/scripts/xml-parse-test.py
index 4445e90a..aac272f1 100755
--- a/scripts/xml-parse-test.py
+++ b/scripts/xml-parse-test.py
@@ -54,7 +54,7 @@ class rpki_updown_cert(object):
<certificate cert_url="%s"\n\
cert_ski="%s"\n\
cert_aki="%s"\n\
- cert_serial="%d"\n\
+ cert_serial="%s"\n\
resource_set_as="%s"\n\
resource_set_ipv4="%s"\n\
resource_set_ipv6="%s"\n' \
@@ -78,6 +78,10 @@ class rpki_updown_class(object):
self.resource_set_as = attrs.getValue('resource_set_as')
self.resource_set_ipv4 = attrs.getValue('resource_set_ipv4')
self.resource_set_ipv6 = attrs.getValue('resource_set_ipv6')
+ try:
+ self.suggested_sia_head = attrs.getValue('suggested_sia_head')
+ except KeyError:
+ self.suggested_sia_head = None
self.certs = []
def toXML(self):
@@ -87,11 +91,12 @@ class rpki_updown_class(object):
cert_ski="%s"\n\
resource_set_as="%s"\n\
resource_set_ipv4="%s"\n\
- resource_set_ipv6="%s"\n\
- suggested_sia_head="%s">\n' \
+ resource_set_ipv6="%s"' \
% (self.class_name, self.cert_url, self.cert_ski,
- self.resource_set_as, self.resource_set_ipv4, self.resource_set_ipv6,
- self.suggested_sia_head))
+ self.resource_set_as, self.resource_set_ipv4, self.resource_set_ipv6))
+ if self.suggested_sia_head != None:
+ xml += ('\n suggested_sia_head="%s"' % (self.suggested_sia_head))
+ xml += '>\n'
for cert in self.certs:
xml += cert.toXML()
return xml + '<issuer>' + base64.b64encode(self.issuer) + '</issuer>\n</class>\n'
@@ -106,44 +111,61 @@ class rpki_updown_list_response(rpki_updown_msg):
def __init__(self):
self.resource_classes = []
+ def startElement(self, name, attrs):
+ if name == 'class':
+ self.resource_classes.append(rpki_updown_class(attrs))
+ elif name == 'certificate':
+ self.resource_classes[-1].certs.append(rpki_updown_cert(attrs))
+
+ def endElement(self, name, text):
+ if name == 'certificate':
+ self.resource_classes[-1].certs[-1].cert = base64.b64decode(text)
+ elif name == 'issuer':
+ self.resource_classes[-1].issuer = base64.b64decode(text)
+
def innerToXML(self):
+ xml = ''
for c in self.resource_classes:
xml += c.toXML()
return xml
class rpki_updown_issue(rpki_updown_msg):
- def __init__(self):
- self.req_as = None
- self_req_ipv4 = None
- self.req_ipv6 = None
+ def startElement(self, name, attrs):
+ assert name == 'request'
+ self.class_name = attrs.getValue('class_name')
+ try:
+ self.req_resource_set_as = attrs.getValue('req_resource_set_as')
+ except KeyError:
+ self.req_resource_set_as = None
+ try:
+ self.req_resource_set_ipv4 = attrs.getValue('req_resource_set_ipv4')
+ except KeyError:
+ self.req_resource_set_ipv4 = None
+ try:
+ self.req_resource_set_ipv6 = attrs.getValue('req_resource_set_ipv6')
+ except KeyError:
+ self.req_resource_set_ipv6 = None
+
+ def endElement(self, name, text):
+ assert name == 'request'
+ self.pkcs10 = base64.b64decode(text)
def innerToXML(self):
xml = (' <request class_name="%s"' % self.class_name)
- if self.req_as != None:
- xml += ('\n req_resource_set_as="%s"' % self.req_as.toXML())
- if self.req_ipv4 != None:
- xml += ('\n req_resource_set_ipv4="%s"' % self.req_ipv4.toXML())
- if self.req_ipv6 != None:
- xml += ('\n req_resource_set_ipv6="%s"' % self.req_ipv6.toXML())
- return xml + self.pkcs10.toXML() + ' </request>\n'
-
-class rpki_updown_issue_response(rpki_updown_msg):
-
- def startElement(self, name, attrs):
- if name == 'class':
- self.resource_class = rpki_updown_class(attrs)
- elif name == 'certificate':
- self.resource_class.certs.append(rpki_updown_cert(attrs))
+ if self.req_resource_set_as != None:
+ xml += ('\n req_resource_set_as="%s"' % self.req_resource_set_as.toXML())
+ if self.req_resource_set_ipv4 != None:
+ xml += ('\n req_resource_set_ipv4="%s"' % self.req_resource_set_ipv4.toXML())
+ if self.req_resource_set_ipv6 != None:
+ xml += ('\n req_resource_set_ipv6="%s"' % self.req_resource_set_ipv6.toXML())
+ return xml + base64.b64encode(self.pkcs10) + ' </request>\n'
- def endElement(self, name, text):
- if name == 'certificate':
- self.resource_class.certs[-1].cert = base64.b64decode(text)
- elif name == 'issuer':
- self.resource_class.issuer = base64.b64decode(text)
+class rpki_updown_issue_response(rpki_updown_list_response):
def innerToXML(self):
- self.resource_class.toXML()
+ assert len(self.resource_classes) < 2
+ rpki_updown_list_response.innerToXML(self)
class rpki_updown_revoke(rpki_updown_msg):
@@ -220,6 +242,7 @@ class rpki_updown_sax_handler(xml.sax.handler.ContentHandler):
assert self.obj != None
if name != 'message':
self.obj.endElement(name, self.text)
+ self.text = ''
files = glob.glob("up-down-protocol-samples/*.xml")
files.sort()