def _create_private_key(self):
private_key = crypto.PKey()
if self.type == 'RSA':
crypto_type = crypto.TYPE_RSA
else:
crypto_type = crypto.TYPE_DSA
try:
LOG.info('[%s] Generating private key (type: %s, size: %s)' %
(self.name, self.type, self.size))
private_key.generate_key(crypto_type, self.size)
except (TypeError, ValueError):
raise
try:
LOG.debug('[%s] Writting private key: %s/private/%s.key' %
(self.name, self.path, self.name))
privatekey_file = os.open('%s/private/%s.key' %
(self.path, self.name),
os.O_WRONLY | os.O_CREAT | os.O_TRUNC,
0o600)
os.write(privatekey_file,
crypto.dump_privatekey(crypto.FILETYPE_PEM, private_key))
os.close(privatekey_file)
except IOError:
try:
os.remove('%s/private/%s.key' % (self.path, self.name))
except OSError:
pass
raise
评论列表
文章目录