o
    �õ±j½  ã                   @   s^   d dl Z d dlZd dlZd dlmZmZmZ d dlmZ dd„ Z	dd„ Z
edkr-e
ƒ  dS dS )	é    N)ÚSOCKSServerÚ	srvloggerÚProxyMonitorSSL)Ú
__banner__c               
   Ã   s€  ��z%dd l } | jdd�}|jdddd� |jdtd	d
d� |jddd� |jddd� |jdtddd� |jdtddd� |jddddd� |jdddddd � |jd!d"dd#d� | ¡ }d$}d%}d&}|jd'u rmttƒ |jd(krxt	 
tj¡ d }|j}|j}g d)¢}	d }
|jd ur˜t ¡ }|j|j|jd*� |jd+u r¡t ¡ }
t|j|j||||	|
d,�}|jd'u rÄtd-|j|j|d u r¿d.nd/f ƒ |
d u rÒ| ¡ I d H  W d S t | ¡ ¡}	 |
 ¡ I d H }|jd0k�r t ¡ }d'|_tj |_!t|j!ƒ |j|||d1� t tj"¡}d'|_tj |_!| #d2¡ t$|||d3�}t | %¡ ¡ nt | &¡ ¡ qÚ t(�y? } zt|ƒ W Y d }~d S d }~ww )4Nr   z/Universal proxy server (SOCKS4/5 and HTTP proxy)Údescriptionz--listen-ipz	127.0.0.1z	Listen IP)ÚdefaultÚhelpz--listen-porti8  zListen port)Útyper   r   z--certzSSL certificate file)r   z--keyzSSL key filez--client-timeouté
   zAHow much time to wait ftill the client finishes initial handshakez--buffer-sizei (  zProxy buffer sizez-mz	--monitorÚ
store_truezMonitor mode.)Úactionr   z-vz	--verboseÚcountÚ	Verbosity)r   r   r   z-sz--silentzdont print bannerzasysocks/test/cert.pemzasysocks/test/key.pemÚtestcertFé   )ÚSOCKS4ÚSOCKS5ÚHTTP)ÚkeyfileT)Úclient_timeoutÚbuffer_sizeÚsupported_protocolsÚmonitor_dispatch_qz*Proxy server is up and running on %s:%s %sÚ z(SSL)i»  )ÚpasswordzZDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:ECDHE-ECDSA-AES128-GCM-SHA256:TLS_AES_128_GCM_SHA256)Úclient_ssl_ctxÚdestination_ssl_ctx))ÚargparseÚArgumentParserÚadd_argumentÚintÚ
parse_argsÚsilentÚprintr   Úverboser   ÚsetLevelÚloggingÚDEBUGr   r   ÚcertÚsslÚ
SSLContextÚload_cert_chainÚkeyÚmonitorÚasyncioÚQueuer   Ú	listen_ipÚlisten_portÚrunÚcreate_taskÚgetÚdst_portÚcreate_default_contextÚcheck_hostnameÚ	CERT_NONEÚverify_modeÚPROTOCOL_TLS_CLIENTÚset_ciphersr   Ú	interceptÚjust_logÚcancelÚ	Exception)r   ÚparserÚargsÚ	fake_certÚfake_keyÚ	fake_passÚssl_ctxr   r   r   r   ÚserverÚserver_taskr-   r   r   Ússl_monitorÚe© rJ   ú‰/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/asysocks/test/ssl_test.pyÚamain
   s‚   €



ù

"

î€ÿrL   c                   C   s   t  tƒ ¡ d S )N)r.   r2   rL   rJ   rJ   rJ   rK   Úmaina   s   rM   Ú__main__)r.   r&   r)   Úasysocks.serverr   r   r   Úasysocks._versionr   rL   rM   Ú__name__rJ   rJ   rJ   rK   Ú<module>   s   W
ÿ