File: //usr/local/lib/python3.10/test/__pycache__/make_ssl_certs.cpython-310.opt-1.pyc
o
�i�$ � @ s d Z ddlZddlZddlZddlZddlT dZdZdZej �
ej �e��Z
d8dd�Zd
Zdd� Zdd� Zdd� Zedk�re�e
� eddd�\ZZedd��
Ze�e� W d � n1 sbw 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� ed!dd�\ZZed"d��Ze�e� e�e� W d � n1 s�w Y edd#d$�\ZZed%d��Ze�e� e�e� W d � n 1 �sw Y ed!d#d$�\ZZed&d��Ze�e� e�e� W d � n 1 �s?w Y ed'd#d(d)�\ZZed*d��Ze�e� e�e� W d � n 1 �shw Y g d+�Zed,d#d-�e�d.�\ZZed/d��Ze�e� e�e� W d � n 1 �s�w Y g d0�Zed1d#d-�e�d.�\ZZed2d��Ze�e� e�e� W d � n 1 �s�w Y ed3d#d4d5�\ZZed6d��Ze�e� e�e� W d � n 1 �s�w Y e� ed7� ed� ed%� dS dS )9zOMake the custom certificate and private key files used by test_ssl
and friends.� 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"