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 			


