File: //usr/local/lib/python3.10/test/__pycache__/make_ssl_certs.cpython-310.opt-2.pyc
o
�i�$ � @ s d dl Z d dlZd dlZd dlZd dlT dZdZdZe j� e j�
e��Z d7d
d�Z
dZd
d� Zdd� Zdd� Zedk�re �e� e
ddd�\ZZedd��
Ze�e� W d � n1 saw Y edd��
Ze�e� W d � n1 s{w Y ed� eg d�� eg d�� edd��Ze�e� e�e� W d � n1 s�w Y edd��
Ze�e� W d � n1 s�w Y e� e
d dd�\ZZed!d��Ze�e� e�e� W d � n1 s�w Y e
dd"d#�\ZZed$d��Ze�e� e�e� W d � n 1 �sw Y e
d d"d#�\ZZed%d��Ze�e� e�e� W d � n 1 �s>w Y e
d&d"d'd(�\ZZed)d��Ze�e� e�e� W d � n 1 �sgw Y g d*�Ze
d+d"d,�e�d-�\ZZed.d��Ze�e� e�e� W d � n 1 �s�w Y g d/�Ze
d0d"d,�e�d-�\ZZed1d��Ze�e� e�e� W d � n 1 �s�w Y e
d2d"d3d4�\ZZed5d��Ze�e� e�e� W d � n 1 �s�w Y e� ed6� ed� ed$� dS dS )8� N)�*Z20180829142316ZZ20371028142316Za�
[ default ]
base_url = http://testca.pythontest.net/testca
[req]
distinguished_name = req_distinguished_name
prompt = no
[req_distinguished_name]
C = XY
L = Castle Anthrax
O = Python Software Foundation
CN = {hostname}
[req_x509_extensions_nosan]
[req_x509_extensions_simple]
subjectAltName = @san
[req_x509_extensions_full]
subjectAltName = @san
keyUsage = critical,keyEncipherment,digitalSignature
extendedKeyUsage = serverAuth,clientAuth
basicConstraints = critical,CA:false
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always,issuer:always
authorityInfoAccess = @issuer_ocsp_info
crlDistributionPoints = @crl_info
[ issuer_ocsp_info ]
caIssuers;URI.0 = $base_url/pycacert.cer
OCSP;URI.0 = $base_url/ocsp/
[ crl_info ]
URI.0 = $base_url/revocation.crl
[san]
DNS.1 = {hostname}
{extra_san}
[dir_sect]
C = XY
L = Castle Anthrax
O = Python Software Foundation
CN = dirname example
[princ_name]
realm = EXP:0, GeneralString:KERBEROS.REALM
principal_name = EXP:1, SEQUENCE:principal_seq
[principal_seq]
name_type = EXP:0, INTEGER:1
name_string = EXP:1, SEQUENCE:principals
[principals]
princ1 = GeneralString:username
[ ca ]
default_ca = CA_default
[ CA_default ]
dir = cadir
database = $dir/index.txt
crlnumber = $dir/crl.txt
default_md = sha256
startdate = {startdate}
default_startdate = {startdate}
enddate = {enddate}
default_enddate = {enddate}
default_days = 7000
default_crl_days = 7000
certificate = pycacert.pem
private_key = pycakey.pem
serial = $dir/serial
RANDFILE = $dir/.rand
policy = policy_match
[ policy_match ]
countryName = match
stateOrProvinceName = optional
organizationName = match
organizationalUnitName = optional
commonName = supplied
emailAddress = optional
[ policy_anything ]
countryName = optional
stateOrProvinceName = optional
localityName = optional
organizationName = optional
organizationalUnitName = optional
commonName = supplied
emailAddress = optional
[ v3_ca ]
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid:always,issuer
basicConstraints = CA:true
F� �req_x509_extensions_full�rsa:3072c C s� t d| � g }td�D ]}tjdd��}|�|j� W d � n1 s%w Y q|\}} }
z�tj| |tt d�}t
|d��
}|�|� W d � n1 sOw Y ddd d
dd|d
|
d|d|g
}|r�tjdd��}|�|j� |j}
W d � n1 sw Y |d|
g7 }n|dd| g7 }tdg| � |r�dd|d|d| dddddd|
g}tdg| � t
| d��}|�
� }W d � n1 s�w Y t
|
d��}|�
� }W d � n1 s�w Y ||fW |D ]}t�|� q�S |D ]}t�|� q�w )Nzcreating cert for � F)�delete��hostname� extra_san� startdate�enddate�w�req�-new�-nodesz-daysZ7000�-newkey�-keyout�-extensions�-config�-outz-x509�openssl�ca�-outdir�cadirz-policyZpolicy_anything�-batch�-infiles�r)�print�range�tempfile�NamedTemporaryFile�append�name�req_template�formatr r �open�write�
check_call�read�os�remove)r �signr
�ext�keyZ tempnames�i�fZreq_fileZ cert_fileZkey_filer �argsZreqfile�certr"