aboutsummaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/irbe-cli.py15
-rw-r--r--scripts/pkcs10.py2
-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
-rwxr-xr-xscripts/rpkid.py12
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: