aboutsummaryrefslogtreecommitdiff
path: root/scripts/rpki
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/rpki')
-rw-r--r--scripts/rpki/https.py2
-rw-r--r--scripts/rpki/left_right.py5
-rw-r--r--scripts/rpki/resource_set.py2
-rw-r--r--scripts/rpki/sql.py7
-rw-r--r--scripts/rpki/x509.py17
5 files changed, 20 insertions, 13 deletions
diff --git a/scripts/rpki/https.py b/scripts/rpki/https.py
index 7d628490..eec5b81d 100644
--- a/scripts/rpki/https.py
+++ b/scripts/rpki/https.py
@@ -32,7 +32,6 @@ def client(msg, privateKey, certChain, x509TrustList, host="localhost", port=443
return response.read()
else:
r = response.read()
- print "ERROR: Got:", response.status, r
raise RuntimeError, (response.status, r)
class requestHandler(BaseHTTPServer.BaseHTTPRequestHandler):
@@ -55,7 +54,6 @@ class requestHandler(BaseHTTPServer.BaseHTTPRequestHandler):
try:
rcode, rtext = handler(query=query_string, path=self.path)
except Exception, edata:
- raise
rcode, rtext = 500, "Unhandled exception %s" % edata
self.send_response(rcode)
self.send_header("Content-Type", rpki_content_type)
diff --git a/scripts/rpki/left_right.py b/scripts/rpki/left_right.py
index 5a5b848e..c23b0581 100644
--- a/scripts/rpki/left_right.py
+++ b/scripts/rpki/left_right.py
@@ -25,7 +25,10 @@ class base_elt(object):
def read_attrs(self, attrs):
"""Template-driven attribute reader."""
for key in self.attributes:
- setattr(self, key, attrs.get(key, None))
+ val = attrs.get(key, None)
+ if isinstance(val, str) and val.isdigit():
+ val = long(val)
+ setattr(self, key, val)
for key in self.booleans:
setattr(self, key, attrs.get(key, False))
diff --git a/scripts/rpki/resource_set.py b/scripts/rpki/resource_set.py
index 1cfd845d..ff43ac6b 100644
--- a/scripts/rpki/resource_set.py
+++ b/scripts/rpki/resource_set.py
@@ -90,6 +90,8 @@ class resource_set(list):
"""
def __init__(self, ini=None):
+ if isinstance(ini, long):
+ ini = str(ini)
if isinstance(ini, str) and len(ini):
self.extend(map(self.parse_str, ini.split(",")))
elif isinstance(ini, tuple):
diff --git a/scripts/rpki/sql.py b/scripts/rpki/sql.py
index 02794295..41e6a0e1 100644
--- a/scripts/rpki/sql.py
+++ b/scripts/rpki/sql.py
@@ -99,7 +99,8 @@ class sql_persistant(object):
elif self.sql_dirty:
cur.execute(self.sql_template.update, self.sql_encode())
self.sql_update_hook(db, cur)
- assert sql_cache[(self.__class__, getattr(self, self.sql_template.index))] == self
+ key = (self.__class__, getattr(self, self.sql_template.index))
+ assert key in sql_cache and sql_cache[key] == self
self.sql_dirty = False
self.sql_in_db = True
@@ -142,8 +143,8 @@ class sql_persistant(object):
def sql_update_hook(self, db, cur):
"""Customization hook."""
- self.delete_hook(db, cur)
- self.insert_hook(db, cur)
+ self.sql_delete_hook(db, cur)
+ self.sql_insert_hook(db, cur)
def sql_delete_hook(self, db, cur):
"""Customization hook."""
diff --git a/scripts/rpki/x509.py b/scripts/rpki/x509.py
index acbb031f..ad3f0e85 100644
--- a/scripts/rpki/x509.py
+++ b/scripts/rpki/x509.py
@@ -21,7 +21,10 @@ class PEM_converter(object):
self.b = "-----BEGIN %s-----" % kind
self.e = "-----END %s-----" % kind
- def toDER(self, pem):
+ def looks_like_PEM(self, text):
+ return text.startswith(self.b)
+
+ def to_DER(self, pem):
"""Convert from PEM to DER."""
lines = pem.splitlines(0)
while lines and lines.pop(0) != self.b:
@@ -31,7 +34,7 @@ class PEM_converter(object):
assert lines
return base64.b64decode("".join(lines))
- def toPEM(self, der):
+ def to_PEM(self, der):
"""Convert from DER to PEM."""
b64 = base64.b64encode(der)
pem = self.b + "\n"
@@ -87,7 +90,7 @@ class DER_object(object):
setattr(self, name, kw[name])
return
if name == "PEM":
- text = self.pem_convert.toDER(kw[name])
+ text = self.pem_convert.to_DER(kw[name])
self.clear()
self.DER = text
return
@@ -96,12 +99,12 @@ class DER_object(object):
self.clear()
self.DER = text
return
- if name in ("PEM_file", "DER_file"):
+ if name in ("PEM_file", "DER_file", "Auto_file"):
f = open(kw[name], "r")
text = f.read()
f.close()
- if name == "PEM_file":
- text = self.pem_converter.toDER(text)
+ if name == "PEM_file" or (name == "Auto_file" and self.pem_converter.looks_like_PEM(text)):
+ text = self.pem_converter.to_DER(text)
self.clear()
self.DER = text
return
@@ -123,7 +126,7 @@ class DER_object(object):
def get_PEM(self):
"""Get the PEM representation of this object."""
- return self.pem_converter.toPEM(self.get_DER())
+ return self.pem_converter.to_PEM(self.get_DER())
class X509(DER_object):
"""X.509 certificates.