o
    jo                     @   s&   d dl m Z mZ d dlZdddZdS )    )datetime	timedeltaNc                 C   sf  ddl m} ddlm} ddlm} ddlm} ddlm} ddl	m
} |du r1|jd	d
| d}|||j| g}	|| g}
|r\|D ]}|
|| |
|t| qF||
}|jddd}t }| |	|	| d||tdd  |d |d!||" | }|j#|j$j%d}|j&|j$j%|j'j(|) d}||fS )zLGenerates self signed certificate for a hostname, and optional IP addresses.r   )x509)NameOID)hashes)default_backend)serialization)rsaNi  i   )public_exponentkey_sizebackendT)capath_lengthi  iB  )daysF)encoding)r   formatencryption_algorithm)*cryptographyr   cryptography.x509.oidr   cryptography.hazmat.primitivesr   cryptography.hazmat.backendsr   r   )cryptography.hazmat.primitives.asymmetricr	   generate_private_keyNameNameAttributeCOMMON_NAMEDNSNameappend	IPAddress	ipaddress
ip_addressSubjectAlternativeNameBasicConstraintsr   utcnowCertificateBuildersubject_nameissuer_name
public_keyserial_numbernot_valid_beforenot_valid_afterr   add_extensionsignSHA256public_bytesEncodingPEMprivate_bytesPrivateFormatTraditionalOpenSSLNoEncryption)hostnameip_addresseskeyr   r   r   r   r   r	   name	alt_namesaddrsanbasic_contraintsnowcertcert_pemkey_pem rA   /root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/asysocks/unicomm/utils/genselfsigned.pygenerate_selfsigned_cert   sR   

rC   )NN)r   r   r   rC   rA   rA   rA   rB   <module>   s   