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 i3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
   