From 7a70b5bb80c69dafc345dfd4df577bfb1e983ee9 Mon Sep 17 00:00:00 2001 From: Adrian Likins Date: Thu, 20 Sep 2007 16:09:20 -0400 Subject: first pass at packaging stuff version is 0.11-1 (this one goes to .11) "make rpms" should build a rpm from the setup.py and func.spec --- certs/slave-keys.py | 80 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 certs/slave-keys.py (limited to 'certs') diff --git a/certs/slave-keys.py b/certs/slave-keys.py new file mode 100644 index 0000000..dee0fd5 --- /dev/null +++ b/certs/slave-keys.py @@ -0,0 +1,80 @@ +#!/usr/bin/python -tt + +import sys +import os +import os.path +from OpenSSL import crypto +import socket + + +def_country = 'UN' +def_state = 'FC' +def_local = 'Func-ytown' +def_org = 'func' +def_ou = 'slave-key' + +cert_dir = '/home/skvidal/tmp/t' +key_file = '%s/slave.pem' % cert_dir +csr_file = '%s/slave.csr' % cert_dir + + +def make_cert(dest=None): + pkey = crypto.PKey() + pkey.generate_key(crypto.TYPE_RSA, 2048) + if dest: + destfo = open(dest, 'w') + destfo.write(crypto.dump_privatekey(crypto.FILETYPE_PEM, pkey)) + destfo.close() + + return pkey + +def make_csr(pkey, dest=None, cn=None): + req = crypto.X509Req() + req.get_subject() + subj = req.get_subject() + subj.C = def_country + subj.ST = def_state + subj.L = def_local + subj.O = def_org + subj.OU = def_ou + if cn: + subj.CN = cn + else: + subj.CN = socket.getfqdn() + subj.emailAddress = 'root@%s' % subj.CN + + req.set_pubkey(pkey) + req.sign(pkey, 'md5') + if dest: + destfo = open(dest, 'w') + destfo.write(crypto.dump_certificate_request(crypto.FILETYPE_PEM, req)) + destfo.close() + + return req + +def retrieve_key_from_file(keyfile): + fo = open(keyfile, 'r') + buf = fo.read() + keypair = crypto.load_privatekey(crypto.FILETYPE_PEM, buf) + return keypair + +def main(): + keypair = None + try: + if not os.path.exists(cert_dir): + os.makedirs(cert_dir) + if not os.path.exists(key_file): + keypair = make_cert(dest=key_file) + if not os.path.exists(csr_file): + if not keypair: + keypair = retrieve_key_from_file(key_file) + csr = make_csr(keypair, dest=csr_file) + except: + return 1 + + return 0 + + +if __name__ == "__main__": + sys.exit(main()) + \ No newline at end of file -- cgit