o
    j                     @   sr   d dl Z d dlZd dlmZ G dd dejZG dd dejZG dd dZG d	d
 d
ejZG dd dZ	dS )    N)NegotiateSecurityModec                   @   s   e Zd ZdZdS )SessionSetupFlag   N)__name__
__module____qualname__SMB2_SESSION_FLAG_BINDING r	   r	   /root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/aiosmb/protocol/smb2/commands/sessionsetup.pyr      s    r   c                   @   s   e Zd ZdZdZdZdZdS )SessionSetupCapabilitiesr            N)r   r   r   SMB2_GLOBAL_CAP_DFSSMB2_GLOBAL_CAP_UNUSED1SMB2_GLOBAL_CAP_UNUSED2SMB2_GLOBAL_CAP_UNUSED3r	   r	   r	   r
   r   
   s
    r   c                   @   s<   e Zd Zdd Zdd Zedd Zedd Zd	d
 ZdS )SESSION_SETUP_REQc                 C   s:   d| _ d | _d | _d | _d | _d | _d | _d | _d | _d S )N   )	StructureSizeFlagsSecurityModeCapabilitiesChannelSecurityBufferOffsetSecurityBufferLengthPreviousSessionIdBufferselfr	   r	   r
   __init__   s   
zSESSION_SETUP_REQ.__init__c                 C   s   t | j| _d| _| jjdddd}|| jjdddd7 }|| jjdddd7 }|| jjdddd7 }|| j	jdddd7 }|| jjdddd7 }|| jjdddd7 }|| j
jdddd7 }|| j7 }|S )	NX   r   littleF	byteordersignedr   r   r   )lenr   r   r   r   to_bytesr   r   r   r   r   r   tr	   r	   r
   r'      s   
zSESSION_SETUP_REQ.to_bytesc                 C      t t| S N)r   from_bufferioBytesIObbuffr	   r	   r
   
from_bytes-      zSESSION_SETUP_REQ.from_bytesc                 C   s   t  }tj| ddd|_|jdksJ ttj| ddd|_ttj| ddd|_t	tj| ddd|_
tj| ddd|_tj| ddd|_tj| ddd|_| d|_| |jtj | |j|_|S )Nr   r"   r$   r   r   r   r   )r   intr1   readr   r   r   r   r   r   r   r   r   r   r   seekr-   SEEK_SETr   buffmsgr	   r	   r
   r,   1   s   zSESSION_SETUP_REQ.from_bufferc                 C   s   d}|d| j  7 }|dt| j 7 }|d| j 7 }|d| j 7 }|d| j 7 }|d| j 7 }|d| j 7 }|d	| j 7 }|d
| j	 7 }|S )Nz"==== SMB2 SESSION SETUP REQ ====
StructureSize: %s
zFlags: %s
zSecurityMode: %s
zCapabilities: %s
zChannel: %s
SecurityBufferOffset: %s
SecurityBufferLength: %s
zPreviousSessionId: %s
Buffer: %s
)
r   reprr   r   r   r   r   r   r   r   r(   r	   r	   r
   __repr__B   s   zSESSION_SETUP_REQ.__repr__N)	r   r   r   r    r'   staticmethodr1   r,   r@   r	   r	   r	   r
   r      s    

r   c                   @   s   e Zd ZdZdZdZdS )SessionFlagsr   r   r   N)r   r   r   SMB2_SESSION_FLAG_IS_GUESTSMB2_SESSION_FLAG_IS_NULLSMB2_SESSION_FLAG_ENCRYPT_DATAr	   r	   r	   r
   rB   Q   s    rB   c                   @   s<   e Zd Zdd Zedd Zedd Zdd Zd	d
 ZdS )SESSION_SETUP_REPLYc                 C   s"   d| _ d | _d | _d | _d | _d S )N	   )r   rB   r   r   r   r   r	   r	   r
   r    Y   s
   
zSESSION_SETUP_REPLY.__init__c                 C   r*   r+   )rF   r,   r-   r.   r/   r	   r	   r
   r1   `   r2   zSESSION_SETUP_REPLY.from_bytesc                 C   s   t  }tj| ddd|_|jdksJ ttj| ddd|_tj| ddd|_tj| ddd|_| |j|_|S )Nr   r"   r3   rG   )	rF   r4   r1   r5   r   rB   r   r   r   r8   r	   r	   r
   r,   d   s   zSESSION_SETUP_REPLY.from_bufferc                 C   st   d| _ t| j| _| jjdddd}|| jjdddd7 }|| j jdddd7 }|| jjdddd7 }|| j7 }|S )NH   r   r"   Fr#   )r   r&   r   r   r   r'   rB   r(   r	   r	   r
   r'   o   s   
zSESSION_SETUP_REPLY.to_bytesc                 C   sR   d}|d| j  7 }|dt| j 7 }|d| j 7 }|d| j 7 }|d| j 7 }|S )Nz$==== SMB2 SESSION SETUP REPLY ====
r;   zSessionFlags: %s
r<   r=   r>   )r   r?   rB   r   r   r   r(   r	   r	   r
   r@   z   s   zSESSION_SETUP_REPLY.__repr__N)	r   r   r   r    rA   r1   r,   r'   r@   r	   r	   r	   r
   rF   X   s    


rF   )
r-   enum'aiosmb.protocol.smb2.commands.negotiater   IntFlagr   r   r   rB   rF   r	   r	   r	   r
   <module>   s    @