aboutsummaryrefslogtreecommitdiff
path: root/scripts/rpki
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/rpki')
-rw-r--r--scripts/rpki/left_right.py46
1 files changed, 24 insertions, 22 deletions
diff --git a/scripts/rpki/left_right.py b/scripts/rpki/left_right.py
index 8d29bde7..226d0ae4 100644
--- a/scripts/rpki/left_right.py
+++ b/scripts/rpki/left_right.py
@@ -2,7 +2,7 @@
"""RPKI "left-right" protocol."""
-import base64, sax_utils, resource_set, lxml.etree, x509
+import base64, rpki.sax_utils, rpki.resource_set, lxml.etree, rpki.x509, rpki.sql
xmlns = "http://www.hactrn.net/uris/rpki/left-right-spec/"
@@ -51,12 +51,14 @@ class base_elt(object):
def __str__(self):
lxml.etree.tostring(self.toXML(), pretty_print=True, encoding="us-ascii")
-class extension_preference_elt(base_elt):
+class extension_preference_elt(base_elt, rpki.sql.sql_persistant):
"""Container for extension preferences."""
element_name = "extension_preference"
attributes = ("name",)
+ sql_attributes = ("name", "value")
+
def startElement(self, stack, name, attrs):
"""Handle <extension_preference/> elements."""
assert name == "extension_preference", "Unexpected name %s, stack %s" % (name, stack)
@@ -73,7 +75,7 @@ class extension_preference_elt(base_elt):
elt.text = self.value
return elt
-class self_elt(base_elt):
+class self_elt(base_elt, rpki.sql.sql_persistant):
"""<self/> element."""
element_name = "self"
@@ -105,7 +107,7 @@ class self_elt(base_elt):
elt.extend([i.toXML() for i in self.prefs])
return elt
-class bsc_elt(base_elt):
+class bsc_elt(base_elt, rpki.sql.sql_persistant):
"""<bsc/> (Business Signing Context) element."""
element_name = "bsc"
@@ -127,11 +129,11 @@ class bsc_elt(base_elt):
def endElement(self, stack, name, text):
"""Handle <bsc/> element."""
if name == "signing_cert":
- self.signing_cert.append(x509.X509(DER=base64.b64decode(text)))
+ self.signing_cert.append(rpki.x509.X509(DER=base64.b64decode(text)))
elif name == "public_key":
self.public_key = base64.b64decode(text)
elif name == "pkcs10_cert_request":
- self.pkcs10_cert_request = x509.PKCS10_Request(DER=base64.b64decode(text))
+ self.pkcs10_cert_request = rpki.x509.PKCS10_Request(DER=base64.b64decode(text))
else:
assert name == "bsc", "Unexpected name %s, stack %s" % (name, stack)
stack.pop()
@@ -146,7 +148,7 @@ class bsc_elt(base_elt):
self.make_b64elt(elt, "public_key")
return elt
-class parent_elt(base_elt):
+class parent_elt(base_elt, rpki.sql.sql_persistant):
"""<parent/> element."""
element_name = "parent"
@@ -164,7 +166,7 @@ class parent_elt(base_elt):
def endElement(self, stack, name, text):
"""Handle <bsc/> element."""
if name == "peer_ta":
- self.peer_ta = x509.X509(DER=base64.b64decode(text))
+ self.peer_ta = rpki.x509.X509(DER=base64.b64decode(text))
else:
assert name == "parent", "Unexpected name %s, stack %s" % (name, stack)
stack.pop()
@@ -176,7 +178,7 @@ class parent_elt(base_elt):
self.make_b64elt(elt, "peer_ta", self.peer_ta.get_DER())
return elt
-class child_elt(base_elt):
+class child_elt(base_elt, rpki.sql.sql_persistant):
"""<child/> element."""
element_name = "child"
@@ -194,7 +196,7 @@ class child_elt(base_elt):
def endElement(self, stack, name, text):
"""Handle <child/> element."""
if name == "peer_ta":
- self.peer_ta = x509.X509(DER=base64.b64decode(text))
+ self.peer_ta = rpki.x509.X509(DER=base64.b64decode(text))
else:
assert name == "child", "Unexpected name %s, stack %s" % (name, stack)
stack.pop()
@@ -206,7 +208,7 @@ class child_elt(base_elt):
self.make_b64elt(elt, "peer_ta", self.peer_ta.get_DER())
return elt
-class repository_elt(base_elt):
+class repository_elt(base_elt, rpki.sql.sql_persistant):
"""<repository/> element."""
element_name = "repository"
@@ -223,7 +225,7 @@ class repository_elt(base_elt):
def endElement(self, stack, name, text):
"""Handle <repository/> element."""
if name == "peer_ta":
- self.peer_ta = x509.X509(DER=base64.b64decode(text))
+ self.peer_ta = rpki.x509.X509(DER=base64.b64decode(text))
else:
assert name == "repository", "Unexpected name %s, stack %s" % (name, stack)
stack.pop()
@@ -235,7 +237,7 @@ class repository_elt(base_elt):
self.make_b64elt(elt, "peer_ta", self.peer_ta.get_DER())
return elt
-class route_origin_elt(base_elt):
+class route_origin_elt(base_elt, rpki.sql.sql_persistant):
"""<route_origin/> element."""
element_name = "route_origin"
@@ -249,9 +251,9 @@ class route_origin_elt(base_elt):
if self.asn is not None:
self.asn = long(self.asn)
if self.ipv4 is not None:
- self.ipv4 = resource_set.resource_set_ipv4(self.ipv4)
+ self.ipv4 = rpki.resource_set.resource_set_ipv4(self.ipv4)
if self.ipv6 is not None:
- self.ipv6 = resource_set.resource_set_ipv6(self.ipv4)
+ self.ipv6 = rpki.resource_set.resource_set_ipv6(self.ipv4)
def endElement(self, stack, name, text):
"""Handle <route_origin/> element."""
@@ -273,17 +275,17 @@ class resource_class_elt(base_elt):
assert name == "resource_class", "Unexpected name %s, stack %s" % (name, stack)
self.read_attrs(attrs)
if self.as is not None:
- self.as = resource_set.resource_set_as(self.as)
+ self.as = rpki.resource_set.resource_set_as(self.as)
if self.req_as is not None:
- self.req_as = resource_set.resource_set_as(self.req_as)
+ self.req_as = rpki.resource_set.resource_set_as(self.req_as)
if self.ipv4 is not None:
- self.ipv4 = resource_set.resource_set_ipv4(self.ipv4)
+ self.ipv4 = rpki.resource_set.resource_set_ipv4(self.ipv4)
if self.req_ipv4 is not None:
- self.req_ipv4 = resource_set.resource_set_ipv4(self.req_ipv4)
+ self.req_ipv4 = rpki.resource_set.resource_set_ipv4(self.req_ipv4)
if self.ipv6 is not None:
- self.ipv6 = resource_set.resource_set_ipv6(self.ipv6)
+ self.ipv6 = rpki.resource_set.resource_set_ipv6(self.ipv6)
if self.req_ipv6 is not None:
- self.req_ipv6 = resource_set.resource_set_ipv6(self.req_ipv6)
+ self.req_ipv6 = rpki.resource_set.resource_set_ipv6(self.req_ipv6)
def endElement(self, stack, name, text):
"""Handle <resource_class/> element."""
@@ -370,7 +372,7 @@ class msg(list):
elt.extend([i.toXML() for i in self])
return elt
-class sax_handler(sax_utils.handler):
+class sax_handler(rpki.sax_utils.handler):
"""SAX handler for Left-Right protocol."""
def create_top_level(self, name, attrs):