o
    àý°j¡  ã                   @   sR   d dl Z d dlmZ d dlmZ d dlmZ d dlmZ dZ	G dd„ deeƒZ
dS )é    N)ÚLOG)ÚLDAPSocksRelay)ÚSSLServerMixin)ÚSSLÚLDAPSSocksRelayc                   @   s8   e Zd ZdZdZdd„ Zedd„ ƒZdd„ Zd	d
„ Z	dS )r   zLDAPS Socks PluginÚLDAPSc                 C   s   t  | ||||¡ d S ©N)r   Ú__init__)ÚselfÚ
targetHostÚ
targetPortÚsocksSocketÚactiveRelays© r   úª/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/impacket/examples/ntlmrelayx/servers/socksplugins/ldaps.pyr	      s   zLDAPSSocksRelay.__init__c                   C   s   dS )Ni|  r   r   r   r   r   ÚgetProtocolPort   s   zLDAPSSocksRelay.getProtocolPortc                 C   sT   t  d¡ |  ¡  zt | ¡s| j ¡  W dS W dS  tjy)   t  	d¡ Y dS w )Nz%Wrapping client connection in TLS/SSLFz$Cannot wrap client socket in TLS/SSLT)
r   ÚdebugÚwrapClientConnectionr   ÚskipAuthenticationr   Úshutdownr   ÚSysCallErrorÚwarning)r
   r   r   r   r      s   


ýü
þz"LDAPSSocksRelay.skipAuthenticationc                 C   sH   g }|  ¡ r| |¡ |  ¡ r| |¡ |s"t ||gg g ¡\}}}|S r   )ÚpendingÚappendÚselect)r
   Úsocket1Úsocket2ÚrreadyÚ_Úexcr   r   r   Úwait_for_data$   s   

zLDAPSSocksRelay.wait_for_dataN)
Ú__name__Ú
__module__Ú__qualname__ÚPLUGIN_NAMEÚPLUGIN_SCHEMEr	   Ústaticmethodr   r   r    r   r   r   r   r   	   s    
)r   Úimpacketr   Ú6impacket.examples.ntlmrelayx.servers.socksplugins.ldapr   Ú&impacket.examples.ntlmrelayx.utils.sslr   ÚOpenSSLr   ÚPLUGIN_CLASSr   r   r   r   r   Ú<module>   s    