o
    Žõ±j§  ã                   @   s.  d dl mZ d dl mZ d dlmZmZmZ d dl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mZ d dlmZ ed	ƒZG d
d„ deƒZedƒZedƒZedƒ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!d e e!fiZ"ddd„Z#dS ) é    )Údivision)Úprint_function)ÚNDRCALLÚ
NDRPOINTERÚNDRUniConformantArray)ÚDWORDÚNTSTATUSÚGUIDÚRPC_SIDÚNULL)ÚDCERPCException)Úsystem_errors)Úuuidtup_to_binÚstring_to_bin)Ú	Structure)z$3dde7c30-165d-11d1-ab8f-00805f14db40z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/bkrp.pyr   #   s   zDCERPCSessionError.__init__c                 C   sF   | j }|tjv rtj| d }tj| d }d| j ||f S d| j  S )Nr   é   z'BKRP SessionError: code: 0x%x - %s - %sz+BKRP SessionError: unknown error code: 0x%x)r   r   ÚERROR_MESSAGES)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   z$7F752B10-178E-11D1-AB8F-00805F14DB40z$7FE94D50-178E-11D1-AB8F-00805F14DB40z$018FF48A-EABA-40C6-8F6D-72370240E967z$47270C64-2FC7-499B-AC5B-0E37CDCE899Ac                   @   ó   e Zd ZdZdS )Ú
BYTE_ARRAYÚcN)r   r    r!   Úitemr   r   r   r   r#   ;   ó    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                   @   s   e Zd ZddddefdfZdS )ÚRc4EncryptedPayload)ÚR3z32s="")ÚMACz20s=""ÚSIDú:)ÚSecretr.   N)r   r    r!   r
   Ú	structurer   r   r   r   r*   D   s    ür*   c                   @   r"   )ÚWRAPPED_SECRET))Ú	SIGNATUREz<L=1)ÚPayload_Lengthú<L=0)ÚCiphertext_Lengthr4   )ÚGUID_of_Wrapping_Keyz16s="")ÚR2z68s="")Ú_Rc4EncryptedPayloadz_-Rc4EncryptedPayloadzself["Payload_Length"])r*   r.   N)r   r    r!   r0   r   r   r   r   r1   M   r&   r1   c                   @   s,   e Zd ZdZdefdefdefdeffZdS )Ú
BackuprKeyr   ÚpguidActionAgentÚpDataInÚcbDataInÚdwParamN)r   r    r!   Úopnumr	   r#   r   r0   r   r   r   r   r9   \   s    ür9   c                   @   s"   e Zd ZdefdefdeffZdS )ÚBackuprKeyResponseÚ	ppDataOutÚ
pcbDataOutÚ	ErrorCodeN)r   r    r!   r'   r   r   r0   r   r   r   r   r?   e   s
    ýr?   c                 Ã   sN   �t ƒ }||d< ||d< |tkrd|d< nt|ƒ|d< ||d< |  |¡I d H S )Nr:   r;   r   r<   r=   )r9   r   ÚlenÚrequest)Údcer:   r;   r=   rD   r   r   r   ÚhBackuprKeyv   s   €
rF   N)r   )$Ú
__future__r   r   Úaiosmb.dcerpc.v5.ndrr   r   r   Úaiosmb.dcerpc.v5.dtypesr   r   r	   r
   r   Úaiosmb.dcerpc.v5.rpcrtr   Úaiosmb.dcerpc.v5r   Úaiosmb.dcerpc.v5.uuidr   r   Úaiosmb.dcerpc.v5.structurer   ÚMSRPC_UUID_BKRPr   ÚBACKUPKEY_BACKUP_GUIDÚBACKUPKEY_RESTORE_GUID_WIN2KÚ"BACKUPKEY_RETRIEVE_BACKUP_KEY_GUIDÚBACKUPKEY_RESTORE_GUIDr#   r'   r*   r1   r9   r?   ÚOPNUMSrF   r   r   r   r   Ú<module>   s.   		ÿ