Added valid_record option to door_warning()
[chemdb.git] / mk_simple_certs.py
1 """
2 From pyOpenSSL examples with a bit of wrapping.
3 Create certificates and private keys for the 'simple' example.
4 """
5
6 from OpenSSL import crypto
7 from certgen import *   # yes yes, I know, I'm lazy
8
9 def get_cert_filenames(server_name) :
10     """
11     Generate private key and certification filesnames.
12     mk_certs(server_name) -> (pkey_filename, cert_filename)
13     """
14     pkey_file = '%s.pkey' % server_name
15     cert_file = '%s.cert' % server_name
16     return (pkey_file, cert_file)
17
18 def mk_certs(server_name) :
19     """
20     Generate private key and certification files.
21     mk_certs(server_name) -> (pkey_filename, cert_filename)
22     """
23     pkey_file,cert_file = get_cert_filenames(server_name)
24     
25     cakey = createKeyPair(TYPE_RSA, 1024)
26     careq = createCertRequest(cakey, CN='Certificate Authority')
27     cacert = createCertificate(careq, (careq, cakey), 0, (0, 60*60*24*365*5)) # five years
28     open(pkey_file, 'w').write(crypto.dump_privatekey(crypto.FILETYPE_PEM, cakey))
29     open(cert_file, 'w').write(crypto.dump_certificate(crypto.FILETYPE_PEM, cacert))
30
31 if __name__ == "__main__" :
32     import sys
33
34     mk_certs(sys.argv[1])
35