o
    àý°jé	  ã                   @   s<   d dl Z d dlZd dlmZmZ G dd„ dƒZddd„ZdS )	é    N)ÚSSLÚcryptoc                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚServerTLSContextc                 C   s   || _ || _dS )zœ
        :param privateKeyFileName: Path to private key file (PEM format)
        :param certificateFileName: Path to certificate file (PEM format)
        N)ÚprivateKeyFileNameÚcertificateFileName)Úselfr   r   © r   ú�/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/impacket/examples/ntlmrelayx/utils/rdp_ssl.pyÚ__init__   s   
zServerTLSContext.__init__c                 C   sÐ   t  t j¡}| t j¡ | t j¡ | t j¡ | t j¡ t| j	dƒ�}t
 t
j| ¡ ¡}W d   ƒ n1 s8w   Y  t| jdƒ�}t
 t
j| ¡ ¡}W d   ƒ n1 sWw   Y  | |¡ | |¡ |S )NÚrb)r   ÚContextÚSSLv23_METHODÚset_optionsÚOP_DONT_INSERT_EMPTY_FRAGMENTSÚOP_TLS_BLOCK_PADDING_BUGÚOP_NO_SSLv2ÚOP_NO_SSLv3Úopenr   r   Úload_certificateÚFILETYPE_PEMÚreadr   Úload_privatekeyÚuse_certificateÚuse_privatekey)r   ÚcontextÚfÚcertÚkeyr   r   r	   Ú
getContext   s   ÿÿ

zServerTLSContext.getContextN)Ú__name__Ú
__module__Ú__qualname__r
   r   r   r   r   r	   r      s    r   ú
RDP-Serverc                 C   sÖ   t  ¡ }| t jd¡ t  ¡ }| | ¡ _| t 	dd¡¡ | 
d¡ | d¡ | | ¡ ¡ | |¡ | |d¡ tjdddd	�}tjddd
d	�}| t  t j|¡¡ | t  t j|¡¡ | ¡  | ¡  |j|jfS )Ni   r   i † i€3áÚsha256ÚwbFz.crt)ÚmodeÚdeleteÚsuffixz.pem)r   ÚPKeyÚgenerate_keyÚTYPE_RSAÚX509Úget_subjectÚCNÚset_serial_numberÚrandomÚrandintÚgmtime_adj_notBeforeÚgmtime_adj_notAfterÚ
set_issuerÚ
set_pubkeyÚsignÚtempfileÚNamedTemporaryFileÚwriteÚdump_certificater   Údump_privatekeyÚcloseÚname)Úcommon_namer   r   Ú	cert_fileÚkey_filer   r   r	   Úgenerate_self_signed_cert4   s"   



r@   )r"   )r/   r6   ÚOpenSSLr   r   r   r@   r   r   r   r	   Ú<module>   s
   