aboutsummaryrefslogtreecommitdiff
path: root/scripts/rpki
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/rpki')
-rw-r--r--scripts/rpki/sax_utils.py2
-rw-r--r--scripts/rpki/sundial.py8
-rw-r--r--scripts/rpki/up_down.py12
3 files changed, 16 insertions, 6 deletions
diff --git a/scripts/rpki/sax_utils.py b/scripts/rpki/sax_utils.py
index 04f9c305..a472bee9 100644
--- a/scripts/rpki/sax_utils.py
+++ b/scripts/rpki/sax_utils.py
@@ -63,7 +63,7 @@ class handler(xml.sax.handler.ContentHandler):
a = dict()
for k,v in attrs.items():
if isinstance(k, tuple):
- if k == ('http://www.w3.org/XML/1998/namespace', 'lang'):
+ if k == ("http://www.w3.org/XML/1998/namespace", "lang"):
k = "xml:lang"
else:
assert k[0] is None
diff --git a/scripts/rpki/sundial.py b/scripts/rpki/sundial.py
index 0703ff22..a1ffde62 100644
--- a/scripts/rpki/sundial.py
+++ b/scripts/rpki/sundial.py
@@ -75,12 +75,18 @@ class datetime(pydatetime.datetime):
@classmethod
def fromXMLtime(cls, x):
"""Convert from XML time representation."""
- return cls.strptime(x, "%Y-%m-%dT%H:%M:%SZ")
+ if x is None:
+ return None
+ else:
+ return cls.strptime(x, "%Y-%m-%dT%H:%M:%SZ")
def toXMLtime(self):
"""Convert to XML time representation."""
return self.strftime("%Y-%m-%dT%H:%M:%SZ")
+ def __str__(self):
+ return self.toXMLtime()
+
@classmethod
def fromdatetime(cls, x):
"""Convert a datetime.datetime object into this subclass.
diff --git a/scripts/rpki/up_down.py b/scripts/rpki/up_down.py
index c42bdac2..f902d86c 100644
--- a/scripts/rpki/up_down.py
+++ b/scripts/rpki/up_down.py
@@ -142,6 +142,7 @@ class class_elt(base_elt):
self.resource_set_as = rpki.resource_set.resource_set_as(attrs["resource_set_as"])
self.resource_set_ipv4 = rpki.resource_set.resource_set_ipv4(attrs["resource_set_ipv4"])
self.resource_set_ipv6 = rpki.resource_set.resource_set_ipv6(attrs["resource_set_ipv6"])
+ self.resource_set_notafter = rpki.sundial.datetime.fromXMLtime(attrs.get("resource_set_notafter"))
def endElement(self, stack, name, text):
"""Handle <class/> elements and their children."""
@@ -153,8 +154,9 @@ class class_elt(base_elt):
def toXML(self):
"""Generate a <class/> element."""
- elt = self.make_elt("class", "class_name", "cert_url",
- "resource_set_as", "resource_set_ipv4", "resource_set_ipv6", "suggested_sia_head")
+ elt = self.make_elt("class", "class_name", "cert_url", "resource_set_as",
+ "resource_set_ipv4", "resource_set_ipv6",
+ "resource_set_notafter", "suggested_sia_head")
elt.extend([i.toXML() for i in self.certs])
if self.issuer is not None:
self.make_b64elt(elt, "issuer", self.issuer.get_DER())
@@ -164,13 +166,15 @@ class class_elt(base_elt):
"""Build a resource_bag from from this <class/> element."""
return rpki.resource_set.resource_bag(self.resource_set_as,
self.resource_set_ipv4,
- self.resource_set_ipv6)
+ self.resource_set_ipv6,
+ self.resource_set_notafter)
def from_resource_bag(self, bag):
"""Set resources of this class element from a resource_bag."""
self.resource_set_as = bag.as
self.resource_set_ipv4 = bag.v4
self.resource_set_ipv6 = bag.v6
+ self.resource_set_notafter = bag.valid_until
class list_pdu(base_elt):
"""Up-Down protocol "list" PDU."""
@@ -422,7 +426,7 @@ class error_response_pdu(base_elt):
if self.description:
elt = self.make_elt("description")
elt.text = str(self.description)
- elt.set("xml:lang", "en-US")
+ elt.set("{http://www.w3.org/XML/1998/namespace}lang", "en-US")
payload.append(elt)
return payload