diff options
Diffstat (limited to 'scripts/rpki')
-rw-r--r-- | scripts/rpki/https.py | 2 | ||||
-rw-r--r-- | scripts/rpki/left_right.py | 5 | ||||
-rw-r--r-- | scripts/rpki/resource_set.py | 2 | ||||
-rw-r--r-- | scripts/rpki/sql.py | 7 | ||||
-rw-r--r-- | scripts/rpki/x509.py | 17 |
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. |