
    5i                        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ZdefdZ	dede
fd	Zdede
fd
Zde
fdZdfde
fdZd Zde j         f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'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9i d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcddde	ZdS )g    N)IPv4AddressIPv6Address)Uniondtreturnc                     t          | t                    rt                              | d          } t	          j        ddd          t	          j        | dz            z   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
    littleA     
   microseconds)
isinstancebytesint
from_bytesdatetime	timedelta)r   s    J/home/kali/Ninja/venv/lib/python3.11/site-packages/msldap/commons/utils.pytimestamp2datetimer      sV     "e *^^B))T1a((8+=2PR7+S+S+SSS    c                     | t          j         ddd          z
  }t          |t          j        d          z  dz            }|                    ddd          S )	Nr
   r   r   r      r	   F)signed)r   r   r   to_bytes)r   deltanss      r   datetime2timestampr      sX    "4A...E	eh(a8888B>	?	?B;;q(5;111r   datac                 :    t          t          |                     S N)strr   r   s    r   
bytes2ipv4r$          {4  !!!r   c                 :    t          t          |                     S r!   )r"   r   r#   s    r   
bytes2ipv6r'      r%   r   c                 \      fdt          dt                               D             S )Nc                 *    g | ]}||z            S  r*   ).0isws     r   
<listcomp>zwrap.<locals>.<listcomp>#   s%    666QAa!a%iL666r   r   )rangelen)r-   r.   s   ``r   wrapr2   "   s3    66666%3q661"5"56666r   c                 ,   | d         } d|z  }d| d         d         z  d| d         z  d| d	         d
         z  d| d	         d         z  d| d         d         z  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msgs       r   
print_certrC   &   s    !"D6\FT)_];;D114
+L99j)+66DN=99C ==v!6!6!;!;C!@!@AAAr   c                 Z    t          |           } | dk    rdS t          | dz
  dz            S )zT
    Convert Windows timestamp (100 ns since 1 Jan 1601) to
    unix timestamp.
    r   l     }*{Gi )r   )secondss    r   win_timestamp_to_unixrF   3   s6    
 'llG!||q,,8999r   c                     | | dk    s| dk    s| dk    rdS t          dt          |                                                     }|S )Nr   0 )maxr   	timestamp)r   tss     r   bh_dt_convertrN   >   sH    	zR1WWc		R2XXr	QBLLNN##	$	$BIr   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'   r2   rC   rF   rN   FUNCTIONAL_LEVELS
KNOWN_SIDSr*   r   r   <module>rk      sL    . . . . . . . .      T5, T1B T T T T2c 2 2 2 2"U "s " " " ""U "s " " " "7# 7 7 7 7
B 
B# 
B 
B 
B 
B: : :h'     	 	 ,,x, , z	,
 , w,  , , , ~, #, ^, x, y, w,  }!," ?#, ,$ y%,& {',( .),*  +,, %-,. !/,0 '1,2 *3,4 5,6 7,8 ,9,: .;,< $=,> G?,@ HA,B MC,D 'E, ,F '%&!4(,*W, , ,


r   