
    r@;jX                         d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlmZ  G d de j	                  Z
 G d de j	                  Z G d de          Z G d	 d
e          Zedk    r e             dS dS )    N)testmainc                   >    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	S )
SecurityTestsc                     t          j        dd          d         | _        	 t          j        dd          d         | _        d S # t          j        $ r(}|j        t          j        k    r d | _        Y d }~d S d }~ww xY w)N zPower Usersr   Administrator)win32securityLookupAccountNamepwr_sid	admin_sid
pywintypeserrorwinerrorERROR_NONE_MAPPEDselfexcs     fC:\Users\Administrator\AppData\Local\Temp\2\pip-target-b0z114gj\lib\python\win32/test/test_security.pysetUpzSecurityTests.setUp   s    $6r=II!L	"*<RQQRSTDNNN 	" 	" 	" |x999!DNNNNNNN	"s    A A;A66A;c                     d S N r   s    r   tearDownzSecurityTests.tearDown   s        c                     | j         t          j        d          |                     t	          j        dd          d         t	          j        dd          d                    d S Nz'No 'Administrator' account is availabler   r   r   )r   unittestSkipTestassertEqualr	   r
   r   s    r   	testEqualzSecurityTests.testEqual   sh    >!#$MNNN+B@@C+B@@C	
 	
 	
 	
 	
r   c                     |                      | j        | j        k               | j        r%|                      | j        | j        k               d S d S r   )
assertTruer   r   r   s    r   	testNESIDzSecurityTests.testNESID$   sR    4555> 	<OODLDN:;;;;;	< 	<r   c                 $   |                      | j        d u           |                      d | j        k               |                     | j        d u            |                     d | j        k               |                     d | j                   d S r   )r#   r   assertFalseassertNotEqualr   s    r   testNEOtherzSecurityTests.testNEOther)   s    D0111,----...-...D$,/////r   c                 Z    d| j         i}|                     |d         | j                    d S )Nfoo)r   r    )r   ds     r   testSIDInDictzSecurityTests.testSIDInDict0   s0    DL!54<00000r   c           	          | j         t          j        d          |                     t	          t          j        dd          d                   t	          t          j        dd          d                              d S r   )r   r   r   r    
memoryviewr	   r
   r   s    r   
testBufferzSecurityTests.testBuffer4   sx    >!#$MNNN}6r?KKANOO}6r?KKANOO	
 	
 	
 	
 	
r   c                 L   | j         }| j        }t          j                    }t          j                    }t          j                    }t          j                    }|                    t          j        t          j        |           |+|                    t          j        t          j	        |           t          j                    }t          j                    }|-|
                    t          j        t          j        |dd           |
                    t          j        t          j	        |dd           t          dd          D ]^}	||                    |d           |                    |d           |                    d|d           |                    d|d           _d S )N   r   i@ )r   r   r	   SECURITY_DESCRIPTORACLAddAccessAllowedAceACL_REVISIONwin32conGENERIC_READGENERIC_ALLAddAuditAccessAceDELETErangeSetSecurityDescriptorOwnerSetSecurityDescriptorGroupSetSecurityDescriptorDaclSetSecurityDescriptorSacl)
r   r   r   sd1sd2sd3daclsd4saclxs
             r   
testMemoryzSecurityTests.testMemory<   s   ,N	/11/11/11 ""  &(=w	
 	
 	
  $$*H,@)   /11 "" ""*HOY1   	&(<gq!	
 	
 	
 q&!! 	6 	6A$..y!<<<**7A666))!T1555))!T15555	6 	6r   N)__name__
__module____qualname__r   r   r!   r$   r(   r,   r/   rG   r   r   r   r   r      s        	" 	" 	"  
 
 
< < <
0 0 01 1 1
 
 
6 6 6 6 6r   r   c                       e Zd Zd Zd ZdS )DomainTestsc                     d | _         	 t          j                    | _         d S # t          j        $ r<}|j        t          j        k    r t          j        t          |                    d }~ww xY wr   )		ds_handler	   DsBindr   r   ERROR_NO_SUCH_DOMAINr   r   strr   s     r   r   zDomainTests.setUp\   sn    	.*133DNNN" 	. 	. 	.|x<<<#CHH---	.s   # A.7A))A.c                 J    | j         | j                                          d S d S r   )rN   closer   s    r   r   zDomainTests.tearDownf   s,    >%N  """"" &%r   N)rH   rI   rJ   r   r   r   r   r   rL   rL   [   s2        . . .# # # # #r   rL   c                   &    e Zd Zd Zd Zd Zd ZdS )TestDSc                 ,    t          j                     d S r   )r	   DsGetDcNamer   s    r   testDsGetDcNamezTestDS.testDsGetDcNamel   s     	!#####r   c                     t          j                    }t          j        |          D ]S\  }}}t          j        ||          D ]\  }}}t          j        ||          }t          j        ||          D ]\  }}}Td S r   )r	   rO   DsListSitesDsListServersInSiteDsListInfoForServerDsListDomainsInSite)r   hstatusignoresiteserverinfodomains           r   testDsListServerInfozTestDS.testDsListServerInfoq   s     ""$1$=a$@$@ 	 	 FFD*7*KAt*T*T D D&$8FCC*7*KAt*T*T  &	 	r   c                     t          j                    }t          j        }t	          j        |          }t          j        |d|||f          }|                     ||d         d                    d S Nr      )r	   rO   ntsecurityconDS_FQDN_1779_NAMEwin32apiGetUserNameExDsCrackNamesr    )r   r^   fmt_offerednameresults        r   testDsCrackNameszTestDS.testDsCrackNamesz   sf     ""#5%k22+Aq+{TGTTvay|,,,,,r   c                     t          j        t           j                  }t          j        }t          j        |          }t          j        d t          j        |t          j        |f          }| 	                    ||d         d                    d S rg   )
rk   rl   NameCanonicalri   rj   r	   rm   DS_NAME_FLAG_SYNTACTICAL_ONLYDS_CANONICAL_NAMEr    )r   expectedrn   ro   rp   s        r   testDsCrackNamesSyntaxzTestDS.testDsCrackNamesSyntax   s~     )(*@AA#5%k22+7+G
 
 	6!9Q<00000r   N)rH   rI   rJ   rX   re   rq   rw   r   r   r   rU   rU   k   sP        $ $ $
  - - -1 1 1 1 1r   rU   c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )TestTranslatec                     t          j        |          }t          j        |          }t          j        |||          }|                     ||           d S r   )rk   rl   r	   TranslateNamer    )r   fmt_fromfmt_toro   rv   gots         r   _testTranslatezTestTranslate._testTranslate   sR    %h//)&11)$&AAh'''''r   c                 Z    |                      t          j        t          j                   d S r   )r   rk   NameFullyQualifiedDNNameSamCompatibler   s    r   testTranslate1zTestTranslate.testTranslate1   s$    H98;UVVVVVr   c                 Z    |                      t          j        t          j                   d S r   )r   rk   r   r   r   s    r   testTranslate2zTestTranslate.testTranslate2   s$    H68UVVVVVr   c                 Z    |                      t          j        t          j                   d S r   )r   rk   r   NameUniqueIdr   s    r   testTranslate3zTestTranslate.testTranslate3   s$    H98;PQQQQQr   c                 Z    |                      t          j        t          j                   d S r   )r   rk   r   r   r   s    r   testTranslate4zTestTranslate.testTranslate4   s$    H183PQQQQQr   N)rH   rI   rJ   r   r   r   r   r   r   r   r   ry   ry      sm        ( ( (W W WW W WR R RR R R R Rr   ry   __main__)r   ri   r   rk   r6   r	   r   pywin32_testutilr   TestCaser   rL   rU   ry   rH   r   r   r   <module>r      sC                   % % % % % %K6 K6 K6 K6 K6H% K6 K6 K6\# # # # #(# # # # #1 #1 #1 #1 #1[ #1 #1 #1LR R R R RK R R R( zHJJJJJ r   