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   