aboutsummaryrefslogtreecommitdiff
path: root/rpki
diff options
context:
space:
mode:
Diffstat (limited to 'rpki')
-rw-r--r--rpki/irdb/zookeeper.py6
-rw-r--r--rpki/rpkic.py28
2 files changed, 22 insertions, 12 deletions
diff --git a/rpki/irdb/zookeeper.py b/rpki/irdb/zookeeper.py
index f0fda08a..72daa952 100644
--- a/rpki/irdb/zookeeper.py
+++ b/rpki/irdb/zookeeper.py
@@ -392,7 +392,11 @@ class Zookeeper(object):
r_msg = self.call_rpkid(q_msg)
assert len(r_msg) == 1 and r_msg[0].tag == rpki.left_right.tag_parent
- cert = rpki.x509.X509(Base64 = r_msg[0].findtext(rpki.left_right.tag_rpki_root_cert))
+ b64 = r_msg[0].findtext(rpki.left_right.tag_rpki_root_cert)
+ if not b64:
+ return None, ()
+
+ cert = rpki.x509.X509(Base64 = b64)
caDirectory, rpkiManifest, signedObjectRepository, rpkiNotify = cert.get_SIA()
sia_base = r_msg[0].get("sia_base")
fn = cert.gSKI() + ".cer"
diff --git a/rpki/rpkic.py b/rpki/rpkic.py
index e297c4d8..d90ad690 100644
--- a/rpki/rpkic.py
+++ b/rpki/rpkic.py
@@ -450,10 +450,13 @@ class main(Cmd):
"""
cert, uris = self.zoo.extract_root_certificate_and_uris(args.root_handle)
- fn = args.output_file or (cert.gSKI() + ".cer")
- with open_swapped_uids(fn, "wb") as f:
- print "Writing", f.name
- f.write(cert.get_DER())
+ if cert is None:
+ print "No certificate currently available"
+ else:
+ fn = args.output_file or (cert.gSKI() + ".cer")
+ with open_swapped_uids(fn, "wb") as f:
+ print "Writing", f.name
+ f.write(cert.get_DER())
@parsecmd(argsubparsers,
@@ -465,13 +468,16 @@ class main(Cmd):
"""
cert, uris = self.zoo.extract_root_certificate_and_uris(args.root_handle)
- fn = args.output_file or (cert.gSKI() + ".tal")
- with open_swapped_uids(fn, "w") as f:
- print "Writing", f.name
- for uri in uris:
- f.write(uri + "\n")
- f.write("\n")
- f.write(cert.getPublicKey().get_Base64())
+ if cert is None:
+ print "No certificate currently available"
+ else:
+ fn = args.output_file or (cert.gSKI() + ".tal")
+ with open_swapped_uids(fn, "w") as f:
+ print "Writing", f.name
+ for uri in uris:
+ f.write(uri + "\n")
+ f.write("\n")
+ f.write(cert.getPublicKey().get_Base64())
@parsecmd(argsubparsers,