o
    Žõ±j3  ã                   @   sô   d dl mZmZmZ d dlmZmZmZmZm	Z	m
Z
mZmZmZmZ d dlmZ d dlmZ d dlmZ d dlmZmZ d dlmZ edƒZG d	d
„ d
eƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZd eefiZdd„ Z dS )é    )ÚNDRCALLÚ
NDRPOINTERÚNDRUniConformantArray)
ÚDWORDÚNTSTATUSÚGUIDÚRPC_SIDÚNULLÚPGUIDÚULONGÚLONGÚPWCHARÚPULONG)ÚDCERPCException)Úsystem_errors)Úhresult_errors)Úuuidtup_to_binÚstring_to_bin)Ú	Structure)z$b9785960-524f-11df-8b6d-83dcded72085z1.0c                   @   s   e Zd Zddd„Zdd„ ZdS )ÚDCERPCSessionErrorNc                 C   s   t  | |||¡ d S )N)r   Ú__init__)ÚselfÚerror_stringÚ
error_codeÚpacket© r   úˆ/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/aiosmb/dcerpc/v5/gkdi.pyr      s   zDCERPCSessionError.__init__c                 C   sˆ   | j }|tjv rtj| d }tj| d }d| j ||f S |d@ tjv r?tj|d@  d }tj|d@  d }d| j ||f S d| j  S )Nr   é   z'GKDI SessionError: code: 0x%x - %s - %siÿÿ  z+GKDI SessionError: unknown error code: 0x%x)r   r   ÚERROR_MESSAGESr   )r   ÚkeyÚerror_msg_shortÚerror_msg_verboser   r   r   Ú__str__   s   

zDCERPCSessionError.__str__)NNN)Ú__name__Ú
__module__Ú__qualname__r   r"   r   r   r   r   r      s    
r   c                   @   s   e Zd ZdZdS )Ú
BYTE_ARRAYÚcN)r#   r$   r%   Úitemr   r   r   r   r&   #   s    r&   c                   @   s   e Zd ZdeffZdS )ÚPBYTE_ARRAYÚDataN)r#   r$   r%   r&   Úreferentr   r   r   r   r)   &   s    ÿr)   c                   @   s8   e Zd ZdZdefdefdefdefdefdeffZdS )	ÚGetKeyr   Ú
cbTargetSDÚ	pTargetSDÚ
pRootKeyIDÚL0KeyIDÚL1KeyIDÚL2KeyIDN)	r#   r$   r%   Úopnumr   r&   r
   r   Ú	structurer   r   r   r   r,   /   s    úr,   c                   @   s   e Zd ZdefdeffZdS )ÚGetKeyResponseÚpcbOutÚppbOutN)r#   r$   r%   r   r)   r4   r   r   r   r   r5   :   s    þr5   c                 Ã   s^   �t ƒ }||d< |tkrd|d< nt|ƒ|d< ||d< ||d< ||d< ||d< |  |¡I d H S )Nr.   r   r-   r/   r0   r1   r2   )r,   r	   ÚlenÚrequest)ÚdceÚtargetSDÚrootKeyr0   r1   r2   r9   r   r   r   ÚhGetKeyJ   s   €
r=   N)!Úaiosmb.dcerpc.v5.ndrr   r   r   Úaiosmb.dcerpc.v5.dtypesr   r   r   r   r	   r
   r   r   r   r   Úaiosmb.dcerpc.v5.rpcrtr   Úaiosmb.dcerpc.v5r   r   Úaiosmb.dcerpc.v5.uuidr   r   Úaiosmb.dcerpc.v5.structurer   ÚMSRPC_UUID_GKDIr   r&   r)   r,   r5   ÚOPNUMSr=   r   r   r   r   Ú<module>   s    0	
ÿ