o
    àý°j%  ã                   @   s”  d dl mZ d dl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 edƒZG dd	„ d	eƒZd
ZdZdZdZ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ƒZ%G d)d*„ d*eƒZ&G d+d,„ d,eƒZ'd e&e'fiZ(d-d.„ Z)d/S )0é    )ÚDCERPCException)ÚNDRCALLÚ	NDRSTRUCTÚNDRUNIONÚ
NDRPOINTERÚNDRENUM)ÚUINTÚLPWSTRÚGUID)Úsystem_errors)ÚEnum)Úuuidtup_to_bin)z$3919286A-B10C-11D0-9BA8-00C04FD92EF5z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/impacket/dcerpc/v5/dssp.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'DSSP SessionError: code: 0x%x - %s - %sz+DSSP 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   r   é   é   i   é   c                   @   ó   e Zd ZG dd„ deƒZdS )ÚDSROLE_MACHINE_ROLEc                   @   s$   e Zd ZdZdZdZdZdZdZdS )zDSROLE_MACHINE_ROLE.enumItemsr   r   r   é   r!   é   N)	r   r   r   Ú DsRole_RoleStandaloneWorkstationÚDsRole_RoleMemberWorkstationÚDsRole_RoleStandaloneServerÚDsRole_RoleMemberServerÚ!DsRole_RoleBackupDomainControllerÚ"DsRole_RolePrimaryDomainControllerr   r   r   r   Ú	enumItemsC   s    r,   N©r   r   r   r   r,   r   r   r   r   r#   B   ó    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 )Ú!DSROLER_PRIMARY_DOMAIN_INFO_BASICÚMachineRoleÚFlagsÚDomainNameFlatÚDomainNameDnsÚDomainForestNameÚ
DomainGuidN)r   r   r   r#   r   r	   r
   Ú	structurer   r   r   r   r/   L   s    úr/   c                   @   ó   e Zd ZdeffZdS )Ú"PDSROLER_PRIMARY_DOMAIN_INFO_BASICÚDataN)r   r   r   r/   Úreferentr   r   r   r   r8   V   ó    ÿr8   c                   @   r"   )ÚDSROLE_OPERATION_STATEc                   @   ó   e Zd ZdZdZdZdS )z DSROLE_OPERATION_STATE.enumItemsr   r   r   N)r   r   r   ÚDsRoleOperationIdleÚDsRoleOperationActiveÚDsRoleOperationNeedRebootr   r   r   r   r,   ]   ó    r,   Nr-   r   r   r   r   r<   \   r.   r<   c                   @   r7   )ÚDSROLE_OPERATION_STATE_INFOÚOperationStateN)r   r   r   r<   r6   r   r   r   r   rB   c   r;   rB   c                   @   r7   )ÚPDSROLE_OPERATION_STATE_INFOr9   N)r   r   r   rB   r:   r   r   r   r   rD   h   r;   rD   c                   @   r"   )ÚDSROLE_SERVER_STATEc                   @   r=   )zDSROLE_SERVER_STATE.enumItemsr   r   r   N)r   r   r   ÚDsRoleServerUnknownÚDsRoleServerPrimaryÚDsRoleServerBackupr   r   r   r   r,   o   rA   r,   Nr-   r   r   r   r   rE   n   r.   rE   c                   @   r7   )ÚPDSROLE_SERVER_STATEr9   N)r   r   r   rE   r:   r   r   r   r   rI   t   r;   rI   c                   @   s   e Zd ZdefdeffZdS )ÚDSROLE_UPGRADE_STATUS_INFOrC   ÚPreviousServerStateN)r   r   r   r   rE   r6   r   r   r   r   rJ   z   s    þrJ   c                   @   r7   )ÚPDSROLE_UPGRADE_STATUS_INFOr9   N)r   r   r   rJ   r:   r   r   r   r   rL   €   r;   rL   c                   @   r"   )Ú DSROLE_PRIMARY_DOMAIN_INFO_LEVELc                   @   r=   )z*DSROLE_PRIMARY_DOMAIN_INFO_LEVEL.enumItemsr   r   r$   N)r   r   r   ÚDsRolePrimaryDomainInfoBasicÚDsRoleUpgradeStatusÚDsRoleOperationStater   r   r   r   r,   ‡   rA   r,   Nr-   r   r   r   r   rM   †   r.   rM   c                   @   s8   e Zd ZdeffZejdefejdefej	de
fiZdS )Ú"DSROLER_PRIMARY_DOMAIN_INFORMATIONÚtagÚDomainInfoBasicÚUpgradStatusInfoÚOperationStateInfoN)r   r   r   rM   Ú	commonHdrrN   r/   rO   rJ   rP   rB   Úunionr   r   r   r   rQ   �   s    ÿ


ýrQ   c                   @   r7   )Ú#PDSROLER_PRIMARY_DOMAIN_INFORMATIONr9   N)r   r   r   rQ   r:   r   r   r   r   rX   ˜   r;   rX   c                   @   s   e Zd ZdZdeffZdS )Ú"DsRolerGetPrimaryDomainInformationr   Ú	InfoLevelN)r   r   r   ÚopnumrM   r6   r   r   r   r   rY   ¡   s    ÿrY   c                   @   r7   )Ú*DsRolerGetPrimaryDomainInformationResponseÚ
DomainInfoN)r   r   r   rX   r6   r   r   r   r   r\   §   r;   r\   c                 C   s   t ƒ }||d< |  |¡S )NrZ   )rY   Úrequest)ÚdceÚ	infoLevelr^   r   r   r   Ú#hDsRolerGetPrimaryDomainInformation¶   s   
ra   N)*Úimpacket.dcerpc.v5.rpcrtr   Úimpacket.dcerpc.v5.ndrr   r   r   r   r   Úimpacket.dcerpc.v5.dtypesr   r	   r
   Úimpacketr   Úimpacket.dcerpc.v5.enumr   Úimpacket.uuidr   ÚMSRPC_UUID_DSSPr   ÚDSROLE_PRIMARY_DS_RUNNINGÚDSROLE_PRIMARY_DS_MIXED_MODEÚDSROLE_PRIMARY_DS_READONLYÚ"DSROLE_PRIMARY_DOMAIN_GUID_PRESENTÚDSROLE_UPGRADE_IN_PROGRESSr#   r/   r8   r<   rB   rD   rE   rI   rJ   rL   rM   rQ   rX   rY   r\   ÚOPNUMSra   r   r   r   r   Ú<module>   s>   

		ÿ