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	
