mod'd crypto out,

clean'd up extra chars
pull/3/head
Ed Rantanen 2016-06-03 17:25:05 -04:00
parent 4ac7e43718
commit a1e823cc0e
1 changed files with 81 additions and 79 deletions

View File

@ -14,14 +14,11 @@
# Libraries/Modules # Libraries/Modules
from OpenSSL import crypto, SSL from OpenSSL import crypto, SSL
import subprocess
import os
import sys, shutil
import argparse import argparse
# Generate Certificate Signing Request (CSR)
def generateCSR(nodename, sans = []):
# Generate Certificate Signing Request (CSR)
def generateCSR(nodename, sans=[]):
while True: while True:
C = input("Enter your Country Name (2 letter code) [US]: ") C = input("Enter your Country Name (2 letter code) [US]: ")
if len(C) != 2: if len(C) != 2:
@ -29,19 +26,19 @@ def generateCSR(nodename, sans = []):
continue continue
ST = input("Enter your State or Province <full name> []:California: ") ST = input("Enter your State or Province <full name> []:California: ")
if len(ST) == 0: if len(ST) == 0:
print( "Please enter your State or Province.") print("Please enter your State or Province.")
continue continue
L = input("Enter your (Locality Name (eg, city) []:San Francisco: ") L = input("Enter your (Locality Name (eg, city) []:San Francisco: ")
if len(L) == 0: if len(L) == 0:
print( "Please enter your City.") print("Please enter your City.")
continue continue
O = input("Enter your Organization Name (eg, company) []:FTW Enterprise: ") O = input("Enter your Organization Name (eg, company) []:FTW Enterprise: ")
if len(L) == 0: if len(L) == 0:
print( "Please enter your Organization Name.") print("Please enter your Organization Name.")
continue continue
OU =input("Enter your Organizational Unit (eg, section) []:IT: ") OU = input("Enter your Organizational Unit (eg, section) []:IT: ")
if len(OU) == 0: if len(OU) == 0:
print( "Please enter your OU.") print("Please enter your OU.")
continue continue
# Allows you to permanently set values required for CSR # Allows you to permanently set values required for CSR
@ -88,31 +85,36 @@ def generateCSR(nodename, sans = []):
key = generateKey(TYPE_RSA, 2048) key = generateKey(TYPE_RSA, 2048)
req.set_pubkey(key) req.set_pubkey(key)
#change to sha 256? # change to sha 256?
#req.sign(key, "sha1") # req.sign(key, "sha1")
req.sign(key, "sha256") req.sign(key, "sha256")
generateFiles(csrfile, req) generateFiles(csrfile, req)
generateFiles(keyfile, key) generateFiles(keyfile, key)
return req return req
# Generate Private Key # Generate Private Key
def generateKey(type, bits): def generateKey(type, bits):
key = crypto.PKey() key = crypto.PKey()
key.generate_key(type, bits) key.generate_key(type, bits)
return key return key
# Generate .csr/key files. # Generate .csr/key files.
def generateFiles(mkFile, request): def generateFiles(mkFile, request):
if mkFile == 'host.csr': if mkFile == 'host.csr':
f = open(mkFile, "w") f = open(mkFile, "wb")
f.write(str(crypto.dump_certificate_request(crypto.FILETYPE_PEM, request))) f.write(crypto.dump_certificate_request(crypto.FILETYPE_PEM, request))
f.close() f.close()
# print test
print(crypto.dump_certificate_request(crypto.FILETYPE_PEM, request)) print(crypto.dump_certificate_request(crypto.FILETYPE_PEM, request))
elif mkFile == 'host.key': elif mkFile == 'host.key':
f = open(mkFile, "w") f = open(mkFile, "wb")
f.write(str(crypto.dump_privatekey(crypto.FILETYPE_PEM, request))) f.write(crypto.dump_privatekey(crypto.FILETYPE_PEM, request))
f.close() f.close()
else: else:
print("Failed.") print("Failed.")