diff options
-rw-r--r-- | myrpki/Makefile | 6 | ||||
-rw-r--r-- | myrpki/myirbe.py | 33 | ||||
-rw-r--r-- | myrpki/myrpki.py | 16 |
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): |