o
    �õ±j›  ã                   @   s4   d dl Z d dlZG dd„ de jƒZG dd„ dƒZdS )é    Nc                   @   sd   e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdZdZdZdZdZdZdS )ÚGSS_C_AFr   é   é   é   é   é   é   é   é   é	   é
   é   é   é   é   é   é   é   é   é   é   éÿ   N)Ú__name__Ú
__module__Ú__qualname__ÚUNSPECÚLOCALÚINETÚIMPLINKÚPUPÚCHAOSÚNSÚNBSÚECMAÚDATAKITÚCCITTÚSNAÚDECnetÚDLIÚLATÚHYLINKÚ	APPLETALKÚBSCÚDSSÚOSIÚX25ÚNULLADDR© r1   r1   ú–/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/minikerberos/gssapi/channelbindings.pyr      s.    r   c                   @   s4   e Zd Zdd„ Zedd„ ƒZedd„ ƒZdd„ Zd	S )
ÚChannelBindingsStructc                 C   s"   d | _ d | _d | _d | _d | _d S ©N)Úinitiator_addrtypeÚinitiator_addressÚacceptor_addrtypeÚacceptor_addressÚapplication_data)Úselfr1   r1   r2   Ú__init__    s
   
zChannelBindingsStruct.__init__c                 C   s   t  t | ¡¡S r4   )r3   Úfrom_bufferÚioÚBytesIO)Údatar1   r1   r2   Ú
from_bytes'   s   z ChannelBindingsStruct.from_bytesc                 C   sØ   t ƒ }|  d¡}|dkr(ttj|ddd�ƒ|_tj|  d¡ddd�}|  |¡|_|  d¡}|dkrPttj|  d¡ddd�ƒ|_tj|  d¡ddd�}|  |¡|_|  d¡}|dkrjtj|  d¡ddd�}|  |¡|_	|S )Nr
   ó           ÚlittleF©Ú	byteorderÚsignedr   )
r3   Úreadr   Úintr@   r5   r6   r7   r8   r9   )ÚbuffÚcbÚtÚinitiator_address_lengthÚacceptor_address_lengthÚapplication_data_lengthr1   r1   r2   r<   +   s    


z!ChannelBindingsStruct.from_bufferc                 C   sÈ   | j d u rd}n| jjjdddd�}|t| j ƒjdddd�7 }|| j 7 }| jd u r.|d7 }n|| j7 }|t| jƒjdddd�7 }|| j7 }| jd u rP|d7 }|S |t| jƒjdddd�7 }|| j7 }|S )NrA   r   rB   FrC   )r6   r5   ÚvalueÚto_bytesÚlenr8   r7   r9   )r:   rJ   r1   r1   r2   rO   ?   s    






þ
zChannelBindingsStruct.to_bytesN)r   r   r   r;   Ústaticmethodr@   r<   rO   r1   r1   r1   r2   r3      s    

r3   )Úenumr=   ÚEnumr   r3   r1   r1   r1   r2   Ú<module>   s   