blob: 7129f134923daf1def8e785d25163df045b8123d [file] [log] [blame]
Jean-Paul Calderone897bc252008-02-18 20:50:23 -05001"""
2Create certificates and private keys for the 'simple' example.
3"""
4
5from OpenSSL import crypto
6from certgen import * # yes yes, I know, I'm lazy
Jim Shaver4ca59a12015-04-25 17:31:22 -04007cakey = createKeyPair(TYPE_RSA, 2048)
Jean-Paul Calderone897bc252008-02-18 20:50:23 -05008careq = createCertRequest(cakey, CN='Certificate Authority')
9cacert = createCertificate(careq, (careq, cakey), 0, (0, 60*60*24*365*5)) # five years
Jim Shaver05298862015-04-29 01:09:13 -040010
Jim Shaver6b5d3812015-04-25 17:45:53 -040011print('Creating Certificate Authority private key in "simple/CA.pkey"')
Jim Shaveraab9ddd2015-04-29 23:11:48 -040012with open('simple/CA.pkey', 'w') as capkey:
13 capkey.write(crypto.dump_privatekey(crypto.FILETYPE_PEM, cakey).decode('utf-8'))
Jim Shaver6b5d3812015-04-25 17:45:53 -040014print('Creating Certificate Authority certificate in "simple/CA.cert"')
Jim Shaveraab9ddd2015-04-29 23:11:48 -040015with open('simple/CA.cert', 'w') as ca:
16 ca.write(crypto.dump_certificate(crypto.FILETYPE_PEM, cacert).decode('utf-8'))
Jim Shaver05298862015-04-29 01:09:13 -040017
Jean-Paul Calderone897bc252008-02-18 20:50:23 -050018for (fname, cname) in [('client', 'Simple Client'), ('server', 'Simple Server')]:
Jim Shaver4ca59a12015-04-25 17:31:22 -040019 pkey = createKeyPair(TYPE_RSA, 2048)
Jean-Paul Calderone897bc252008-02-18 20:50:23 -050020 req = createCertRequest(pkey, CN=cname)
21 cert = createCertificate(req, (cacert, cakey), 1, (0, 60*60*24*365*5)) # five years
Jim Shaver6b5d3812015-04-25 17:45:53 -040022 print('Creating Certificate %s private key in "simple/%s.pkey"' % (fname, fname))
Jim Shaveraab9ddd2015-04-29 23:11:48 -040023 with open('simple/%s.pkey' % (fname,), 'w') as leafpkey:
24 leafpkey.write(crypto.dump_privatekey(crypto.FILETYPE_PEM, pkey).decode('utf-8'))
Jim Shaver6b5d3812015-04-25 17:45:53 -040025 print('Creating Certificate %s certificate in "simple/%s.cert"' % (fname, fname))
Jim Shaveraab9ddd2015-04-29 23:11:48 -040026 with open('simple/%s.cert' % (fname,), 'w') as leafcert:
27 leafcert.write(crypto.dump_certificate(crypto.FILETYPE_PEM, cert).decode('utf-8'))
28