diff options
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/irbe-cli.py | 15 | ||||
-rw-r--r-- | scripts/pkcs10.py | 2 | ||||
-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 | ||||
-rwxr-xr-x | scripts/rpkid.py | 12 |
8 files changed, 31 insertions, 31 deletions
diff --git a/scripts/irbe-cli.py b/scripts/irbe-cli.py index 1d61d2d6..fdb50853 100755 --- a/scripts/irbe-cli.py +++ b/scripts/irbe-cli.py @@ -9,17 +9,6 @@ a separate program. import glob, getopt, sys, lxml.etree, POW.pkix, xml.sax, lxml.sax import rpki.left_right, rpki.relaxng, rpki.cms, rpki.https, rpki.x509, rpki.config -# Kludge around current test setup all being PEM rather than DER format -convert_from_pem = True - -def read_cert(filename): - """Read a certificate file from disk.""" - if convert_from_pem: - cert = rpki.x509.X509(PEM_file=filename) - else: - cert = rpki.x509.X509(DER_file=filename) - return cert.get_POWpkix() - class command(object): """Command processor mixin class for left-right protocol objects. @@ -62,7 +51,7 @@ class command(object): def handle_peer_ta(self, arg): """Special handler for --peer_ta option.""" - self.peer_ta = read_cert(arg) + self.peer_ta = rpki.x509.X509(Auto_file=arg) class self(command, rpki.left_right.self_elt): '''"self" command.''' @@ -84,7 +73,7 @@ class bsc(command, rpki.left_right.bsc_elt): def handle_signing_cert(self, arg): """--signing_cert option.""" - self.signing_cert.append(read_cert(arg)) + self.signing_cert.append(rpki.x509.X509(Auto_file=arg)) class parent(command, rpki.left_right.parent_elt): '''"parent" command.''' diff --git a/scripts/pkcs10.py b/scripts/pkcs10.py index e8f45963..ca5dfee9 100644 --- a/scripts/pkcs10.py +++ b/scripts/pkcs10.py @@ -9,7 +9,7 @@ convert = rpki.x509.PEM_converter("CERTIFICATE REQUEST") for name in glob.glob("resource-cert-samples/*.req"): f = open(name, "r") - der = convert.toDER(f.read()) + der = convert.to_DER(f.read()) f.close() pkcs10 = POW.pkix.CertificationRequest() 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. diff --git a/scripts/rpkid.py b/scripts/rpkid.py index a30278e8..6f0f06bf 100755 --- a/scripts/rpkid.py +++ b/scripts/rpkid.py @@ -28,9 +28,12 @@ def left_right_handler(query, path): return r_pdu def destroy_handler(q_pdu): - r_pdu = make_reply(q_pdu) - q_pdu.sql_delete() - r_msg.append(r_pdu) + data = q_pdu.sql_fetch(db, cur, getattr(q_pdu, q_pdu.sql_template.index)) + if data is not None: + data.sql_delete(db, cur) + r_msg.append(make_reply(q_pdu)) + else: + r_msg.append(make_error_report(q_pdu)) def create_handler(q_pdu): r_pdu = make_reply(q_pdu) @@ -53,7 +56,8 @@ def left_right_handler(query, path): v = getattr(q_pdu, a) if v is not None: setattr(data, a, v) - q_pdu.sql_store(db, cur) + data.sql_dirty = True + data.sql_store(db, cur) r_pdu = make_reply(q_pdu) r_msg.append(r_pdu) else: |