aboutsummaryrefslogtreecommitdiff
path: root/myrpki.rototill/myrpki.py
diff options
context:
space:
mode:
Diffstat (limited to 'myrpki.rototill/myrpki.py')
-rw-r--r--myrpki.rototill/myrpki.py15
1 files changed, 13 insertions, 2 deletions
diff --git a/myrpki.rototill/myrpki.py b/myrpki.rototill/myrpki.py
index e5d4eaf8..b35a56e6 100644
--- a/myrpki.rototill/myrpki.py
+++ b/myrpki.rototill/myrpki.py
@@ -576,6 +576,17 @@ def etree_write(e, filename, verbose = True):
ElementTree(e).write(filename + ".tmp")
os.rename(filename + ".tmp", filename)
+def etree_read(filename, verbose = False):
+ """
+ Read an etree from a file.
+ """
+ if verbose:
+ print "Reading", filename
+ try:
+ return ElementTree(file = filename).getroot()
+ except IOError:
+ return None
+
def tag(t):
"""
Wrap an element name in the right XML namespace goop.
@@ -621,8 +632,8 @@ def main(argv = ()):
bpki = CA(cfg_file, bpki_dir)
bpki.setup("/CN=%s TA" % my_handle)
- if os.path.exists(xml_filename):
- e = ElementTree(file = xml_filename).getroot()
+ e = etree_read(xml_filename)
+ if e:
bsc_req, bsc_cer = bpki.bsc(e.findtext("{%s}%s" % (namespace, "bpki_bsc_pkcs10")))
else:
bsc_req, bsc_cer = None, None