o
    Žõ±jÁ  ã                   @   s®  d dl Z d dlmZmZ d dlmZ deeef de j fdd„Zdefdd	„Z	d
ede
fdd„Zd
ede
fdd„Zde
fdd„Zdnde
fdd„Zdd„ Zde j fdd„ZdddddddddœZi d d!“d"d#“d$d%“d&d'“d(d)“d*d+“d,d-“d.d/“d0d1“d2d3“d4d5“d6d7“d8d9“d:d;“d<d=“d>d?“d@dA“i dBdC“dDdE“dFdG“dHdI“dJdK“dLdM“dNdO“dPdQ“dRdS“dTdU“dVdW“dXdY“dZd[“d\d]“d^d_“d`da“dbdc“¥dddedfdgdhdidjdkdldmœ	¥ZdS )oé    N)ÚIPv4AddressÚIPv6Address)ÚUnionÚdtÚreturnc                 C   s4   t | tƒrt | d¡} t ddd¡tj| d d� S )z¾
    Converting Windows timestamps to datetime.datetime format
    :param dt: Windows timestamp as array of bytes or integer
    :type dt: bytearray | int
    :return: datetime.datetime
    ÚlittleéA  é   é
   ©Úmicroseconds)Ú
isinstanceÚbytesÚintÚ
from_bytesÚdatetimeÚ	timedelta)r   © r   ú‡/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/msldap/commons/utils.pyÚtimestamp2datetime   s   
r   c                 C   s:   | t   ddd¡ }t|t jdd� d ƒ}|jdddd�S )	Nr   r	   r   r
   é   r   F)Úsigned)r   r   r   Úto_bytes)r   ÚdeltaÚnsr   r   r   Údatetime2timestamp   s   r   Údatac                 C   ó   t t| ƒƒS ©N)Ústrr   ©r   r   r   r   Ú
bytes2ipv4   ó   r!   c                 C   r   r   )r   r   r    r   r   r   Ú
bytes2ipv6   r"   r#   c                    s    ‡ ‡fdd„t dtˆ ƒˆƒD ƒS )Nc                    s   g | ]
}ˆ ||ˆ … ‘qS r   r   )Ú.0Úi©ÚsÚwr   r   Ú
<listcomp>#   s    zwrap.<locals>.<listcomp>r   )ÚrangeÚlenr&   r   r&   r   Úwrap"   s    r,   c                 C   sn   | d } d| }d| d d  d| d  d| d	 d
  d| d	 d  d| d d  g}d  |d  |¡ |¡¡S )NÚtbs_certificateú zCert Subject: %sÚsubjectÚcommon_namezCert Serial: %sÚserial_numberzCert Start: %sÚvalidityÚ
not_beforezCert End: %sÚ	not_afterzCert Issuer: %sÚissuerz{}{}z
{})ÚformatÚjoin)ÚcertÚoffsetÚblanksÚmsgr   r   r   Ú
print_cert&   s   
ûr<   c                 C   s$   t | ƒ} | dkr
dS t | d d ƒS )zT
    Convert Windows timestamp (100 ns since 1 Jan 1601) to
    unix timestamp.
    r   l     }*{Gíi€–˜ )r   )Úsecondsr   r   r   Úwin_timestamp_to_unix3   s   r>   c                 C   s:   | d u s| dks| dks| dkrdS t dt|  ¡ ƒƒ}|S )Nr   Ú0Ú éÿÿÿÿ)Úmaxr   Ú	timestamp)r   Útsr   r   r   Úbh_dt_convert>   s    rE   z2000 Mixed/Nativez2003 InterimÚ2003Ú2008z2008 R2Ú2012z2012 R2Ú2016)r   r	   é   é   é   é   é   é   zS-1-0zNull AuthorityzS-1-0-0ÚNobodyzS-1-1zWorld AuthorityzS-1-1-0ÚEveryonezS-1-2zLocal AuthorityzS-1-2-0ÚLocalzS-1-3zCreator AuthorityzS-1-3-0zCreator OwnerzS-1-3-1zCreator GroupzS-1-3-4zOwner RightszS-1-4zNon-unique AuthorityzS-1-5zNT AuthorityzS-1-5-1ÚDialupzS-1-5-2ÚNetworkzS-1-5-3ÚBatchzS-1-5-4ÚInteractivezS-1-5-5-X-YzLogon SessionzS-1-5-6ÚServicezS-1-5-7Ú	AnonymouszS-1-5-9zEnterprise Domain ControllerszS-1-5-10zPrincipal SelfzS-1-5-11zAuthenticated UserszS-1-5-12zRestricted CodezS-1-5-13zTerminal Server UserszS-1-5-14zRemote Interactive LogonzS-1-5-17ÚIUSRzS-1-5-18zLocal SystemzS-1-5-19zNT Authority Local ServicezS-1-5-20zNT Authority Network ServicezS-1-5-32-544ÚAdministratorszS-1-5-32-545ÚUserszS-1-5-32-546ÚGuestszS-1-5-32-547zPower UserszS-1-5-32-548zAccount OperatorszServer OperatorszPrint OperatorszBackup OperatorsÚReplicatorszStorage Replica AdministratorszNTLM AuthenticationzSChannel AuthenticationzDigest Authenticationz
NT Service)	zS-1-5-32-549zS-1-5-32-550zS-1-5-32-551zS-1-5-32-552zS-1-5-32-582zS-1-5-64-10zS-1-5-64-14zS-1-5-64-21zS-1-5-80)r   )r   Ú	ipaddressr   r   Útypingr   r   r   r   r   r   r!   r#   r,   r<   r>   rE   ÚFUNCTIONAL_LEVELSÚ
KNOWN_SIDSr   r   r   r   Ú<module>   sÆ    øÿþýüûúùø	÷
öõôóòñðïîíìëêéèçæåäãâá à!ß"Þ#Õ