aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--myrpki/myirbe.py1
-rw-r--r--myrpki/myrpki.py36
-rw-r--r--myrpki/myrpki.rng2
3 files changed, 23 insertions, 16 deletions
diff --git a/myrpki/myirbe.py b/myrpki/myirbe.py
index 2aea4e88..921f4cb2 100644
--- a/myrpki/myirbe.py
+++ b/myrpki/myirbe.py
@@ -21,6 +21,7 @@ PERFORMANCE OF THIS SOFTWARE.
import lxml.etree, base64, subprocess, sys, os, time, getopt, MySQLdb
import rpki.https, rpki.config, rpki.resource_set, rpki.relaxng
import rpki.exceptions, rpki.left_right, rpki.log, rpki.x509
+import myrpki
rng = lxml.etree.RelaxNG(lxml.etree.parse("myrpki.rng"))
diff --git a/myrpki/myrpki.py b/myrpki/myrpki.py
index be3fbbdc..954afcf0 100644
--- a/myrpki/myrpki.py
+++ b/myrpki/myrpki.py
@@ -197,7 +197,9 @@ def PEMElement(e, tag, filename):
e = SubElement(e, tag)
e.text = "".join(p.strip() for p in open(filename).readlines()[1:-1])
-class bpki(object):
+class CA(object):
+
+ debug = False
def __init__(self, cfg, dir, cer):
self.cfg = cfg
@@ -210,6 +212,16 @@ class bpki(object):
self.serial = dir + "/serial"
self.crlnum = dir + "/crl_number"
+ def run_ca(self, *args, **env):
+ cmd = ("openssl", "ca", "-notext", "-batch", "-config", self.cfg) + args
+ env = env.copy()
+ if "PATH" in os.environ:
+ env["PATH"] = os.environ["PATH"]
+ if self.debug:
+ print "cmd: %r" % (cmd,)
+ print "env: %r" % (env,)
+ subprocess.check_call(cmd, env = env)
+
def setup(self):
if not os.path.exists(self.dir):
@@ -239,13 +251,7 @@ class bpki(object):
"-out", self.req))
if not os.path.exists(self.cer):
- subprocess.check_call(("openssl", "ca", "-batch", "-notext",
- #"-verbose",
- "-extensions", "ca_x509_ext_ca",
- "-config", self.cfg,
- "-selfsign",
- "-in", self.req,
- "-out", self.cer))
+ self.run_ca("-selfsign", "-extensions", "ca_x509_ext_ca", "-in", self.req, "-out", self.cer)
if not os.path.exists(self.crl):
subprocess.check_call(("openssl", "ca", "-batch", "-batch", "-notext",
@@ -355,8 +361,8 @@ def main():
if r:
bsc_req = base64.b64decode(r)
- ca = bpki(cfg_file, bpki_dir, bpki_cacert)
- ca.setup()
+ bpki = CA(cfg_file, bpki_dir, bpki_cacert)
+ bpki.setup()
e = Element("myrpki", xmlns = namespace, version = "1", handle = my_handle)
@@ -366,16 +372,16 @@ def main():
children_csv_file = children_csv_file,
prefix_csv_file = prefix_csv_file,
asn_csv_file = asn_csv_file,
- xcert = ca.xcert).xml(e)
+ xcert = bpki.xcert).xml(e)
parents.from_csv(
parents_csv_file = parents_csv_file,
- xcert = ca.xcert).xml(e)
+ xcert = bpki.xcert).xml(e)
- PEMElement(e, "bpki_ca_certificate", ca.cer)
- PEMElement(e, "bpki_crl", ca.crl)
+ PEMElement(e, "bpki_ca_certificate", bpki.cer)
+ PEMElement(e, "bpki_crl", bpki.crl)
- ca.bsc(e, bsc_req)
+ bpki.bsc(e, bsc_req)
ElementTree(e).write(xml_filename + ".tmp")
os.rename(xml_filename + ".tmp", xml_filename)
diff --git a/myrpki/myrpki.rng b/myrpki/myrpki.rng
index d35db9fc..96d5d289 100644
--- a/myrpki/myrpki.rng
+++ b/myrpki/myrpki.rng
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
- $Id: myrpki.rnc 2546 2009-06-26 23:54:17Z sra $
+ $Id: myrpki.rnc 2560 2009-07-02 05:49:19Z sra $
RelaxNG Schema for MyRPKI XML messages