本文整理汇总了Python中cpc.util.conf.server_conf.ServerConf.getKeyDir方法的典型用法代码示例。如果您正苦于以下问题:Python ServerConf.getKeyDir方法的具体用法?Python ServerConf.getKeyDir怎么用?Python ServerConf.getKeyDir使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类cpc.util.conf.server_conf.ServerConf
的用法示例。
在下文中一共展示了ServerConf.getKeyDir方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: OpenSSL
# 需要导入模块: from cpc.util.conf.server_conf import ServerConf [as 别名]
# 或者: from cpc.util.conf.server_conf.ServerConf import getKeyDir [as 别名]
class OpenSSL(object):
'''
A class used by the server to generate CA and perform certificate signing
'''
def __init__(self, cn=None):
self.conf = ServerConf()
self.cn = cn or self.conf.getHostName() or socket.getfqdn()
def setupCA(self):
'''creates keypair and certificate for the CA'''
#create certificate env
if (not os.path.isdir(self.conf.getCAKeyDir())):
os.makedirs(self.conf.getCAKeyDir())
if (not os.path.isdir(self.conf.getCACertDir())):
os.makedirs(self.conf.getCACertDir())
self._generateCA()
self._generateKeyPair(self.conf.getCAPrivateKey(),
self.conf.getCAPublicKey())
self._generateRootCert()
self._generateCaChainFile()
def setupClient(self):
'''
Creates a connection bundle for the Client and worker
@returns ConnectionBundle
'''
connectionBundle = ConnectionBundle(create=True, fqdn=self.cn)
serverConf = ServerConf()
#generate random ascii string
randstring = ''.join(
random.choice(string.ascii_uppercase + string.digits) for x in
range(6))
tempDir = "%s/tmp/%s" % (self.conf.getConfDir(), randstring)
privKeyFile = "%s/priv.pem" % tempDir
pubKeyFile = "%s/pub.pem" % tempDir
certReqConfigFile = "%s/cert_req.txt" % tempDir
certFile = "%s/cert.pem" % tempDir
os.makedirs(tempDir) #we create a temp dir for intermediate files
self._generateKeyPair(privKeyFile=privKeyFile, pubKeyFile=pubKeyFile)
self._generateCertReqConf(
distinguished_cn="%s_%s" % (connectionBundle.CN_ID, self.cn),
certReqConfigFile=certReqConfigFile)
self._generateCert(privKeyFile, certFile, certReqConfigFile)
#now we need to read everything in to the connection bundle
connectionBundle.setPrivateKey(open(privKeyFile, 'r').read())
connectionBundle.setPublicKey(open(pubKeyFile, 'r').read())
connectionBundle.setCert(open(certFile, 'r').read())
connectionBundle.setCaCert(open(self.conf.getCACertFile(), "r").read())
shutil.rmtree(tempDir)
connectionBundle.setClientSecurePort(
serverConf.getClientSecurePort())
connectionBundle.setServerSecurePort(
serverConf.getServerSecurePort())
connectionBundle.setHostname(ServerConf().getHostName())
return connectionBundle
def setupServer(self):
if (not os.path.isdir(self.conf.getKeyDir())):
os.makedirs(self.conf.getKeyDir())
self._generateKeyPair()
self._generateCertReqConf(
distinguished_cn=self.cn + "_" + self.conf.CN_ID,
certReqConfigFile=self.conf.getCertReqConfigFile())
self._generateCert(self.conf.getPrivateKey(),
self.conf.getCertFile(),
certReqConfigFile=self.conf.getCertReqConfigFile())
self._createDefaultLogConfig()
def _generateCA(self):
'''set up a CA configuration'''
if (not os.path.isfile(self.conf.getCASerialFile())):
f = open(self.conf.getCASerialFile(), 'w')
f.write('01')
f.close()
if (not os.path.isfile(self.conf.getCAIndexFile())):
f = open(self.conf.getCAIndexFile(), 'w')
f.close()
self._generateCaConf()
def _generateCaChainFile(self):
#.........这里部分代码省略.........