o
    àý°jw  ã                   @   sô   d dl mZmZ d dlmZmZ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G dd„ deƒZG dd„ deƒZeefeefdœZdd„ Zddd„Zdd„ ZdS )é    )Úhresult_errorsÚmapi_constants)ÚNULLÚSTRÚULONG)ÚNDRCALLÚ
NDRPOINTER)ÚDCERPCException)Úuuidtup_to_bin)z$1544F5E0-613C-11D1-93DF-00C04FD7BD09z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/impacket/dcerpc/v5/oxabref.pyr      s   zDCERPCSessionError.__init__c                 C   sh   | j }|tjv rtj| }d| j |f S |tjv r/tj| d }tj| d }d| j ||f S d| j  S )Nz%OXABREF SessionError: code: 0x%x - %sr   é   z*OXABREF SessionError: code: 0x%x - %s - %sz.OXABREF 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                   @   ó   e Zd ZdeffZdS )ÚPUCHAR_ARRAYÚDataN)r   r   r   r   Úreferentr   r   r   r   r   -   ó    ÿr   c                   @   r   )ÚPPUCHAR_ARRAYr   N)r   r   r   r   r   r   r   r   r   r!   2   r    r!   c                   @   s,   e Zd ZdZdefdefdefdeffZdS )ÚRfrGetNewDSAr   ÚulFlagsÚpUserDNÚ
ppszUnusedÚ
ppszServerN)r   r   r   Úopnumr   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 )ÚRfrGetNewDSAResponser%   r&   N)r   r   r   r!   r(   r   r   r   r   r)   E   ó    þr)   c                   @   s&   e Zd ZdZdefdefdeffZdS )ÚRfrGetFQDNFromServerDNr   r#   ÚcbMailboxServerDNÚszMailboxServerDNN)r   r   r   r'   r   r   r(   r   r   r   r   r+   L   s    ýr+   c                   @   s   e Zd ZdefdeffZdS )ÚRfrGetFQDNFromServerDNResponseÚppszServerFQDNÚ	ErrorCodeN)r   r   r   r   r   r(   r   r   r   r   r.   T   r*   r.   )r   r   c                 C   s(   | t kr| S | dd … dkr| d S | S )Néÿÿÿÿú )r   )Ústringr   r   r   ÚcheckNullStringe   s
   r4   Ú c                 C   sl   t ƒ }d|d< t|ƒ|d< t|d< d|d< |  |¡}|d d d… |d< |d tkr4|d d d… |d< |S )Nr   r#   r$   r%   r2   r&   r1   )r"   r4   r   Úrequest)Údcer$   r6   Úrespr   r   r   ÚhRfrGetNewDSAn   s   
r9   c                 C   sL   t |ƒ}tƒ }d|d< ||d< t|ƒ|d< |  |¡}|d d d… |d< |S )Nr   r#   r-   r,   r/   r1   )r4   r+   Úlenr6   )r7   r-   r6   r8   r   r   r   ÚhRfrGetFQDNFromServerDN}   s   
r;   N)r5   )Úimpacketr   r   Úimpacket.dcerpc.v5.dtypesr   r   r   Úimpacket.dcerpc.v5.ndrr   r   Úimpacket.dcerpc.v5.rpcrtr	   Úimpacket.uuidr
   ÚMSRPC_UUID_OXABREFr   r   r!   r"   r)   r+   r.   ÚOPNUMSr4   r9   r;   r   r   r   r   Ú<module>   s&   
	
þ
	