o
    Žõ±j”'  ã                   @   sä  d dl Z d dl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mZmZmZmZmZ d dl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  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*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ƒZ0G d%d&„ d&eƒZ1G d'd(„ d(eƒZ2G d)d*„ d*eƒZ3G d+d,„ d,eƒZ4G d-d.„ d.eƒZ5G d/d0„ d0eƒZ6G d1d2„ d2eƒZ7G d3d4„ d4eƒZ8G d5d6„ d6eƒZ9G d7d8„ d8eƒZ:G d9d:„ d:eƒZ;G d;d<„ d<eƒZ<G d=d>„ d>eƒZ=G d?d@„ d@eƒZ>G dAdB„ dBeƒZ?G dCdD„ dDeƒZ@G dEdF„ dFeƒZAG dGdH„ dHeƒZBG dIdJ„ dJeƒZCG dKdL„ dLeƒZDG dMdN„ dNeƒZEG dOdP„ dPeƒZFG dQdR„ dReƒZGG dSdT„ dTeƒZHG dUdV„ dVeƒZIG dWdX„ dXeƒZJe7e8fe9e:fe;e>fe<e=fe?e@feAeBfeCeDfeEeFfeGeHfeIeJfdYœ
ZKdZd[„ ZLd\d]„ ZMd^efd_d`„ZNdqdadb„ZOdcdd„ ZPd d ed fdedf„ZQdqdgdh„ZRdqdidj„ZSdkdl„ ZTdmdn„ ZUefdodp„ZVdS )ré    N)Ústat)ÚLONGÚBOOLÚPWCHARÚRPC_SIDÚPCHARÚ	ULONGLONGÚUINTÚUSHORTÚLPWSTRÚDWORDÚULONGÚNULLÚWSTRÚPBOOLÚPLONG)ÚNDRPOINTERNULLÚNDRCALLÚ	NDRSTRUCTÚNDRUNIONÚ
NDRPOINTERÚNDRUniConformantArray)ÚNDRVaryingString)ÚDCERPCException)Úsystem_errors)Úuuidtup_to_bin)Ú	Structure)z$c681d488-d850-11d0-8c52-00c04fd90f7ez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/efsr.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'EFSR SessionError: code: 0x%x - %s - %sz+EFSR 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   c                   @   ó   e Zd ZdZdS )ÚEXIMPORT_CONTEXT_HANDLE))ÚDataz20s=""N©r+   r,   r-   Ú	structurer#   r#   r#   r$   r/   )   ó    r/   c                   @   ó   e Zd ZdeffZdS )ÚPEXIMPORT_CONTEXT_HANDLEr0   N)r+   r,   r-   r/   Úreferentr#   r#   r#   r$   r5   .   ó    ÿr5   c                   @   ó   e Zd ZdefdeffZdS )ÚEFS_RPC_BLOBr0   ÚcbDataN©r+   r,   r-   r   r   r2   r#   r#   r#   r$   r9   3   ó    þr9   c                   @   r4   )ÚPEFS_RPC_BLOBr0   N)r+   r,   r-   r9   r6   r#   r#   r#   r$   r=   9   r7   r=   c                   @   r8   )ÚEFS_HASH_BLOBr0   r:   Nr;   r#   r#   r#   r$   r>   >   r<   r>   c                   @   ó(   e Zd ZdefdefdefdeffZdS )ÚENCRYPTION_CERTIFICATE_HASHÚLenghtÚSIDÚHashÚDisplayN)r+   r,   r-   r   r   r>   r   r2   r#   r#   r#   r$   r@   D   ó    ür@   c                   @   r4   )ÚPENCRYPTION_CERTIFICATE_HASHr0   N)r+   r,   r-   r@   r6   r#   r#   r#   r$   rF   L   r7   rF   c                   @   r8   )Ú ENCRYPTION_CERTIFICATE_HASH_LISTÚ
nCert_HashrB   N)r+   r,   r-   r   rF   r2   r#   r#   r#   r$   rG   Q   r<   rG   c                   @   r4   )Ú!PENCRYPTION_CERTIFICATE_HASH_LISTr0   N)r+   r,   r-   rG   r6   r#   r#   r#   r$   rI   W   r7   rI   c                   @   s"   e Zd ZdefdefdeffZdS )ÚCERTIFICATE_BLOBÚdwCertEncodingTyper:   ÚbDataNr;   r#   r#   r#   r$   rJ   \   ó
    ýrJ   c                   @   ó"   e Zd ZdefdefdeffZdS )ÚENCRYPTION_CERTIFICATEÚcbTotalLengthÚUserSidÚCertBlobN)r+   r,   r-   r   r   rJ   r2   r#   r#   r#   r$   rO   c   rM   rO   c                   @   r4   )ÚPENCRYPTION_CERTIFICATEr0   N)r+   r,   r-   rO   r6   r#   r#   r#   r$   rS   j   r7   rS   c                   @   r8   )ÚENCRYPTION_CERTIFICATE_LISTÚnUsersÚUsersN)r+   r,   r-   r   rS   r2   r#   r#   r#   r$   rT   o   r<   rT   c                   @   r4   )ÚPENCRYPTION_CERTIFICATE_LISTr0   N)r+   r,   r-   rT   r6   r#   r#   r#   r$   rW   u   r7   rW   c                   @   r?   )Ú!ENCRYPTED_FILE_METADATA_SIGNATUREÚdwEfsAccessTypeÚCertificatesAddedÚEncryptionCertificateÚEfsStreamSignatureN)r+   r,   r-   r   rI   rS   r=   r2   r#   r#   r#   r$   rX   z   rE   rX   c                   @   rN   )ÚENCRYPTION_PROTECTORrP   rQ   ÚProtectorDescriptorN)r+   r,   r-   r   r   r   r2   r#   r#   r#   r$   r]   ‚   rM   r]   c                   @   r4   )ÚPENCRYPTION_PROTECTORr0   N)r+   r,   r-   r]   r6   r#   r#   r#   r$   r_   ‰   r7   r_   c                   @   r8   )ÚENCRYPTION_PROTECTOR_LISTÚnProtectorsÚ
ProtectorsN)r+   r,   r-   r   r_   r2   r#   r#   r#   r$   r`   Ž   r<   r`   c                   @   ó    e Zd ZdZdefdeffZdS )ÚRpcEfsRpcOpenFileRawr   ÚFileNameÚFlagsN)r+   r,   r-   Úopnumr   r   r2   r#   r#   r#   r$   rd   ž   ó
    þrd   c                   @   r4   )ÚRpcEfsRpcOpenFileRawResponseÚhContextN)r+   r,   r-   r5   r2   r#   r#   r#   r$   ri   ¥   r7   ri   c                   @   ó   e Zd ZdZdeffZdS )ÚRpcEfsRpcEncryptFileSrvé   re   N©r+   r,   r-   rg   r   r2   r#   r#   r#   r$   rl   ª   ó    ÿrl   c                   @   r.   )ÚRpcEfsRpcEncryptFileSrvResponser#   Nr1   r#   r#   r#   r$   rp   °   r3   rp   c                   @   rc   )ÚRpcEfsRpcDecryptFileSrvé   re   ÚOpenFlagN)r+   r,   r-   rg   r   r   r2   r#   r#   r#   r$   rq   ´   rh   rq   c                   @   rk   )ÚRpcEfsRpcQueryUsersOnFileé   re   Nrn   r#   r#   r#   r$   rt   »   ro   rt   c                   @   r4   )Ú!RpcEfsRpcQueryUsersOnFileResponseÚProtectorListN©r+   r,   r-   rI   r2   r#   r#   r#   r$   rv   Á   r7   rv   c                   @   r.   )ÚRpcEfsRpcDecryptFileSrvResponser#   Nr1   r#   r#   r#   r$   ry   Æ   r3   ry   c                   @   rk   )ÚEfsRpcQueryRecoveryAgentsé   re   Nrn   r#   r#   r#   r$   rz   Ê   ro   rz   c                   @   r4   )Ú!EfsRpcQueryRecoveryAgentsResponserw   Nrx   r#   r#   r#   r$   r|   Ð   r7   r|   c                   @   rc   )ÚRpcEfsRpcRemoveUsersFromFileé   re   ÚEncryptionCertificatesN©r+   r,   r-   rg   r   rT   r2   r#   r#   r#   r$   r}   Õ   rh   r}   c                   @   r.   )Ú$RpcEfsRpcRemoveUsersFromFileResponser#   Nr1   r#   r#   r#   r$   r�   Ü   r3   r�   c                   @   rc   )ÚRpcEfsRpcAddUsersToFileé	   re   r   Nr€   r#   r#   r#   r$   r‚   á   rh   r‚   c                   @   r.   )ÚRpcEfsRpcAddUsersToFileResponser#   Nr1   r#   r#   r#   r$   r„   è   r3   r„   c                   @   rc   )ÚRpcEfsRpcFileKeyInfoé   re   Ú	InfoClassN)r+   r,   r-   rg   r   r   r2   r#   r#   r#   r$   r…   í   rh   r…   c                   @   r4   )ÚRpcEfsRpcFileKeyInfoResponseÚKeyInfoN)r+   r,   r-   r=   r2   r#   r#   r#   r$   rˆ   ô   r7   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 )	Ú$RpcEfsRpcDuplicateEncryptionInfoFileé   ÚSrcFileNameÚDestFileNameÚdwCreationDispositionÚdwAttributesÚ
RelativeSDÚbInheritHandleN)	r+   r,   r-   rg   r   r   r9   r   r2   r#   r#   r#   r$   rŠ   ù   s    úrŠ   c                   @   r.   )Ú,RpcEfsRpcDuplicateEncryptionInfoFileResponser#   Nr1   r#   r#   r#   r$   r’     r3   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 )ÚRpcEfsRpcAddUsersToFileExé   ÚdwFlagsÚReservedre   r   N)	r+   r,   r-   rg   r   r   r   rT   r2   r#   r#   r#   r$   r“   	  s    ür“   c                   @   r.   )Ú!RpcEfsRpcAddUsersToFileExResponser#   Nr1   r#   r#   r#   r$   r—     r3   r—   )
r   rm   rr   ru   r{   r~   rƒ   r†   r‹   r”   c                 C   s(   | t kr| S | dd … dkr| d S | S )Néÿÿÿÿú )r   )Ústringr#   r#   r$   ÚcheckNullString+  s
   r›   c                 Ã   ó$   �t ƒ }t|ƒ|d< |  |¡I d H S ©Nre   )r‚   r›   Úrequest©Údcere   rž   r#   r#   r$   ÚhRpcEfsRpcAddUsersToFile4  ó   €r¡   é   c                 Ã   s4   �t ƒ }||d< t|ƒ|d< ||d< |  |¡I d H S )Nr•   re   r   )r“   r›   rž   )r    re   r•   r   rž   r#   r#   r$   ÚhRpcEfsRpcAddUsersToFileEx:  s   €r¤   c                 Ã   ó,   �t ƒ }t|ƒ|d< ||d< |  |¡I d H S )Nre   rs   )rq   r›   rž   )r    re   rs   rž   r#   r#   r$   ÚhRpcEfsRpcDecryptFileSrvB  ó
   €r¦   c                 Ã   rœ   r�   )rl   r›   rž   rŸ   r#   r#   r$   ÚhRpcEfsRpcEncryptFileSrvH  r¢   r¨   c                 Ã   sd   �t ƒ }t|ƒ|d< t|ƒ|d< ||d< ||d< |tur!||d< ntƒ |d< ||d< |  |¡I d H S )NrŒ   r�   rŽ   r�   r�   r‘   )rŠ   r›   r   r9   rž   )r    re   rŽ   r�   r�   r‘   rž   r#   r#   r$   Ú%hRpcEfsRpcDuplicateEncryptionInfoFileM  s   €

r©   c                 Ã   r¥   )Nre   r‡   )r…   r›   rž   )r    re   r‡   rž   r#   r#   r$   ÚhRpcEfsRpcFileKeyInfoZ  r§   rª   c                 Ã   r¥   )Nre   rf   )rd   r›   rž   )r    re   rf   rž   r#   r#   r$   ÚhRpcEfsRpcOpenFileRaw`  r§   r«   c                 Ã   rœ   r�   )rz   r›   rž   rŸ   r#   r#   r$   ÚhRpcEfsRpcQueryRecoveryAgentsf  r¢   r¬   c                 Ã   rœ   r�   )rt   r›   rž   rŸ   r#   r#   r$   ÚhRpcEfsRpcQueryUsersOnFilek  r¢   r­   c                 Ã   r¥   )Nre   r   )r}   r›   rž   )r    re   r   rž   r#   r#   r$   ÚhRpcEfsRpcRemoveUsersFromFilep  r§   r®   )r   )WÚioÚosr   Úaiosmb.dcerpc.v5.dtypesr   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   Úaiosmb.dcerpc.v5.ndrr   r   r   r   r   r   r   Úaiosmb.dcerpc.v5.rpcrtr   Úaiosmb.dcerpc.v5r   Úaiosmb.dcerpc.v5.uuidr   Úaiosmb.dcerpc.v5.structurer   ÚMSRPC_UUID_EFSRr   r/   r5   r9   r=   r>   r@   rF   rG   rI   rJ   rO   rS   rT   rW   rX   r]   r_   r`   rd   ri   rl   rp   rq   rt   rv   ry   rz   r|   r}   r�   r‚   r„   r…   rˆ   rŠ   r’   r“   r—   ÚOPNUMSr›   r¡   r¤   r¦   r¨   r©   rª   r«   r¬   r­   r®   r#   r#   r#   r$   Ú<module>   sŽ   D 		ö	


