aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--myrpki/Makefile6
-rw-r--r--myrpki/myirbe.py33
-rw-r--r--myrpki/myrpki.py16
3 files changed, 36 insertions, 19 deletions
diff --git a/myrpki/Makefile b/myrpki/Makefile
index bcadc044..81de1cf2 100644
--- a/myrpki/Makefile
+++ b/myrpki/Makefile
@@ -1,8 +1,8 @@
# $Id$
-all:: relatives
-all:: myrpki.xml
-all:: lint
+#all:: relatives
+#all:: myrpki.xml
+#all:: lint
#all:: parse
all:: load
diff --git a/myrpki/myirbe.py b/myrpki/myirbe.py
index ec0c4467..c86eb736 100644
--- a/myrpki/myirbe.py
+++ b/myrpki/myirbe.py
@@ -47,6 +47,26 @@ if argv:
cfg = rpki.config.parser(cfg_file, "myirbe")
+modified = False
+
+bpki_rpkid = myrpki.CA(cfg_file, cfg.get("rpkid_ca_directory"))
+modified |= bpki_rpkid.setup("/CN=rpkid TA")
+for name in ("rpkid", "irdbd", "irbe_cli"):
+ modified |= bpki_rpkid.ee("/CN=%s EE" % name, name)
+
+bpki_pubd = myrpki.CA(cfg_file, cfg.get("pubd_ca_directory"))
+modified |= bpki_pubd.setup("/CN=pubd TA")
+for name in ("pubd", "irbe_cli"):
+ modified |= bpki_pubd.ee("/CN=%s EE" % name, name)
+
+bpki_rootd = myrpki.CA(cfg_file, cfg.get("rootd_ca_directory"))
+modified |= bpki_rootd.setup("/CN=rootd TA")
+modified |= bpki_rootd.ee("/CN=rootd EE", "rootd")
+
+if modified:
+ print "BPKI initialized. You need to start daemons before continuing."
+ sys.exit()
+
if cfg.has_section("myrpki"):
myrpki.main()
@@ -127,24 +147,13 @@ if hosted_cacert:
if p.wait() != 0:
raise RuntimeError, "Couldn't convert certificate to PEM format"
-bpki_rpkid = myrpki.CA(cfg_file, cfg.get("rpkid_ca_directory"))
-bpki_rpkid.setup("/CN=rpkid TA")
-for name in ("rpkid", "irdbd", "irbe_cli"):
- bpki_rpkid.ee("/CN=%s EE" % name, name)
+
if hosted_cacert:
bpki_rpkid.fxcert(my_handle + ".cacert.cer", hosted_cacert, restrict_pathlen = False)
-bpki_pubd = myrpki.CA(cfg_file, cfg.get("pubd_ca_directory"))
-bpki_pubd.setup("/CN=pubd TA")
-for name in ("pubd", "irbe_cli"):
- bpki_pubd.ee("/CN=%s EE" % name, name)
if hosted_cacert:
bpki_pubd.fxcert(my_handle + ".cacert.cer", hosted_cacert)
-bpki_rootd = myrpki.CA(cfg_file, cfg.get("rootd_ca_directory"))
-bpki_rootd.setup("/CN=rootd TA")
-bpki_rootd.ee("/CN=rootd EE", "rootd")
-
rpkid_pdus = [
rpki.left_right.self_elt.make_pdu( action = "get", self_handle = my_handle),
rpki.left_right.bsc_elt.make_pdu( action = "list", self_handle = my_handle),
diff --git a/myrpki/myrpki.py b/myrpki/myrpki.py
index 10eb3159..7658ffa8 100644
--- a/myrpki/myrpki.py
+++ b/myrpki/myrpki.py
@@ -234,21 +234,26 @@ class CA(object):
def setup(self, ta_name):
+ modified = False
+
if not os.path.exists(self.dir):
os.makedirs(self.dir)
-
- self.touch_file(self.index)
- self.touch_file(self.serial, "01\n")
- self.touch_file(self.crlnum, "01\n")
+ self.touch_file(self.index)
+ self.touch_file(self.serial, "01\n")
+ self.touch_file(self.crlnum, "01\n")
self.run_req(key_file = self.key, req_file = self.req)
if not os.path.exists(self.cer):
+ modified = True
self.run_ca("-selfsign", "-extensions", "ca_x509_ext_ca", "-subj", ta_name, "-in", self.req, "-out", self.cer)
if not os.path.exists(self.crl):
+ modified = True
self.run_ca("-gencrl", "-out", self.crl)
+ return modified
+
def ee(self, ee_name, base_name):
key_file = "%s/%s.key" % (self.dir, base_name)
req_file = "%s/%s.req" % (self.dir, base_name)
@@ -256,6 +261,9 @@ class CA(object):
self.run_req(key_file = key_file, req_file = req_file)
if not os.path.exists(cer_file):
self.run_ca("-extensions", "ca_x509_ext_ee", "-subj", ee_name, "-in", req_file, "-out", cer_file)
+ return True
+ else:
+ return False
def bsc(self, e, pkcs10):