o
    jN                     @   s   d dl mZmZmZmZmZmZ d dlmZm	Z	m
Z
 d dlmZ d dlmZ d dlmZmZ d dl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ddZdS )    )DWORDLPWSTRULONGLPBYTENULL	DWORD_PTR)NDRCALL	NDRSTRUCT
NDRPOINTER)DCERPCException)uuidtup_to_bin)system_errorshresult_errors)SMBException)	Structure)z$91ae6020-9e3c-11cf-8d7c-00aa00c091bez0.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/icpr.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'ICPR SessionError: code: 0x%x - %s - %si  z+ICPR 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efdeffZdS )CERTTRANSBLOBcbDatapbDataN)r   r    r!   r   r   	structurer   r   r   r   r"   3   s    r"   c                   @   s   e Zd ZdeffZdS )LPCERTTRANSBLOBDataN)r   r    r!   r"   referentr   r   r   r   r&   9   s    r&   c                   @   s2   e Zd ZdZdefdefdefdefdeffZdS )CertServerRequestr   dwFlagspwszAuthoritypdwRequestIdpctbAttribspctbRequestN)	r   r    r!   opnumr   r   r   r"   r%   r   r   r   r   r)   D   s    r)   c                   @   s4   e 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 )CertServerRequestResponser,   pdwDispositionpctbCertpctbEncodedCertpctbDispositionMessage	ErrorCodeN)r   r    r!   r   r"   r   r%   r   r   r   r   r0   O   s    r0   c                 C   s(   | t kr| S | dd  dkr| d S | S )N )r   )stringr   r   r   checkNullStringd   s
   r9   r    c           	         s   t  }||d< t||d< ||d< t|}|d}t }t||d< ||d< ||d< t }t||d< ||d< ||d< | |I d H S )	Nr*   r+   r,   z	utf-16-ler#   r$   r-   r.   )r)   r9   encoder"   lenrequest)	dceservicecsrr*   r,   r-   r=   attribsblobcsr_requestr   r   r   hCertServerRequestm   s    
rC   N)r   r   r:   )aiosmb.dcerpc.v5.dtypesr   r   r   r   r   r   aiosmb.dcerpc.v5.ndrr   r	   r
   aiosmb.dcerpc.v5.rpcrtr   aiosmb.dcerpc.v5.uuidr   aiosmb.dcerpc.v5r   r   aiosmb.commons.exceptionsr   aiosmb.dcerpc.v5.structurer   MSRPC_UUID_ICPRr   r"   r&   r)   r0   OPNUMSr9   rC   r   r   r   r   <module>   s"    	