def generate_x509_cert(user_id, project_id, bits=2048):
 subject = _user_cert_subject(user_id, project_id)
 with utils.tempdir() as tmpdir:
  keyfile = os.path.abspath(os.path.join(tmpdir, 'temp.key'))
  csrfile = os.path.abspath(os.path.join(tmpdir, 'temp.csr'))
  utils.execute('openssl', 'genrsa', '-out', keyfile, str(bits))
  utils.execute('openssl', 'req', '-new', '-key', keyfile, '-out', csrfile, '-batch', '-subj', subject)
  with open(keyfile) as f:
   private_key = f.read()
  with open(csrfile) as f:
   csr = f.read()
 (serial, signed_csr) = sign_csr(csr, project_id)
 fname = os.path.join(ca_folder(project_id), ('newcerts/%s.pem' % serial))
 cert = {'user_id': user_id, 'project_id': project_id, 'file_name': fname}
 db.certificate_create(context.get_admin_context(), cert)
 return (private_key, signed_csr)

def generate_x509_cert ( user_id , project_id , bits = 2048 ) : subject = _user_cert_subject ( user_id , project_id ) with utils . tempdir ( ) as tmpdir : keyfile = os . path . abspath ( os . path . join ( tmpdir , 'temp.key' ) ) csrfile = os . path . abspath ( os . path . join ( tmpdir , 'temp.csr' ) ) utils . execute ( 'openssl' , 'genrsa' , '-out' , keyfile , str ( bits ) ) utils . execute ( 'openssl' , 'req' , '-new' , '-key' , keyfile , '-out' , csrfile , '-batch' , '-subj' , subject ) with open ( keyfile ) as f : private_key = f . read ( ) with open ( csrfile ) as f : csr = f . read ( ) ( serial , signed_csr ) = sign_csr ( csr , project_id ) fname = os . path . join ( ca_folder ( project_id ) , ( 'newcerts/%s.pem' % serial ) ) cert = { 'user_id' : user_id , 'project_id' : project_id , 'file_name' : fname } db . certificate_create ( context . get_admin_context ( ) , cert ) return ( private_key , signed_csr )
generate and sign a cert for user in project .