o
    j:                     @   s   d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ G dd deZG d	d
 d
eZG dd dZG dd dZdS )    )logger)KerberosResponse)KerberosTarget)UniProto)	UniClient)
Packetizerc                   @   .   e Zd ZdddZdd Zdd Zdd	 Zd
S )KerberosPacketizer  c                 C      t | | || _d| _d S N    r   __init__buffer_size	in_bufferselfr    r   /root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/minikerberos/network/aioclientsocket.pyr   
      
zKerberosPacketizer.__init__c                 c   p    t | jdkr4tj| jd d ddd}t | j|kr6| jdd|  }| j|d d  | _|V  d S d S d S N   bigF	byteordersignedlenr   int
from_bytesr   lengthdatar   r   r   process_buffer      
z!KerberosPacketizer.process_bufferc                 C     |V  d S Nr   r   r$   r   r   r   data_out      
zKerberosPacketizer.data_outc                 C  6   |d u r|V  |  j |7  _ |  D ]}|V  qd S r(   r   r%   r   r$   packetr   r   r   data_in      zKerberosPacketizer.data_inNr
   __name__
__module____qualname__r   r%   r*   r0   r   r   r   r   r	   	   
    
r	   c                   @   r   )KerberosPWChangePacketizerr
   c                 C   r   r   r   r   r   r   r   r   #   r   z#KerberosPWChangePacketizer.__init__c                 c   r   r   r   r"   r   r   r   r%   (   r&   z)KerberosPWChangePacketizer.process_bufferc                 C  r'   r(   r   r)   r   r   r   r*   0   r+   z#KerberosPWChangePacketizer.data_outc                 C  r,   r(   r-   r.   r   r   r   r0   3   r1   z"KerberosPWChangePacketizer.data_inNr2   r3   r   r   r   r   r8   "   r7   r8   c                   @   2   e Zd ZdefddZdd Zddefdd	Zd
S )AIOKerberosPWChangeClientSockettargetc                 C   
   || _ d S r(   r;   r   r;   r   r   r   r   ;      
z(AIOKerberosPWChangeClientSocket.__init__c                 C      d| j  | j jf S Nz%s:%dr;   get_hostname_or_ipportr   r   r   r   get_addr_str>      z,AIOKerberosPWChangeClientSocket.get_addr_strFthrowc           	         s   d }d }zUt  }t| j|}| I d H }| jjtjkrAt|jdddd}|	|| I d H  |
 2 z	3 d H W }|} n6 n| jjtjkrLtd|W |d urZ| I d H  S S |d urg| I d H  w w Nr   r   Fr   zNot implemented!)r8   r   r;   connectprotocolr   
CLIENT_TCPr   to_byteswriteread
CLIENT_UDP	Exceptionclose	r   r$   rH   client
connection
packetizerr#   r/   krb_messager   r   r   sendrecvA   s.   
z(AIOKerberosPWChangeClientSocket.sendrecvNFr4   r5   r6   r   r   rF   boolrX   r   r   r   r   r:   :       r:   c                   @   r9   )AIOKerberosClientSocketr;   c                 C   r<   r(   r=   r>   r   r   r   r   Y   r?   z AIOKerberosClientSocket.__init__c                 C   r@   rA   rB   rE   r   r   r   rF   \   rG   z$AIOKerberosClientSocket.get_addr_strFrH   c           	         s   d }d }zXt  }t| j|}| I d H }| jjtjkrDt|jdddd}|	|| I d H  |
 2 z3 d H W }t|} n6 n| jjtjkrOtd|W |d ur]| I d H  S S |d urj| I d H  w w rI   )r	   r   r;   rJ   rK   r   rL   r   rM   rN   rO   r   loadrP   rQ   rR   rS   r   r   r   rX   _   s.   

z AIOKerberosClientSocket.sendrecvNrY   rZ   r   r   r   r   r]   X   r\   r]   N)minikerberosr   "minikerberos.protocol.asn1_structsr   minikerberos.common.targetr   asysocks.unicomm.common.targetr   asysocks.unicomm.clientr   #asysocks.unicomm.common.packetizersr   r	   r8   r:   r]   r   r   r   r   <module>   s    