
    b                     2   d Z ddlZddlmZ ddlmZ ddlmZ ddlmZ  G d dej	        j
                  Z G d	 d
ej	        j
                  Z G d dej	        j
                  Z G d dej	        j
                  Z G d dej	        j
                  ZdS )z Tests for samba.dcerpc.security.    N)security)access_check)ntstatus)NTSTATUSErrorc                   B     e Zd Z fdZd Zd Zd Zd Zd Zd Z	 xZ
S )SecurityTokenTestsc                     t          t          |                                            t          j                    | _        d S N)superr   setUpr   tokenself	__class__s    6/usr/lib/python3/dist-packages/samba/tests/security.pyr   zSecurityTokenTests.setUp   s3     $''--///^%%


    c                 ^    |                      | j                                                   d S r
   )assertFalser   	is_systemr   s    r   test_is_systemz!SecurityTokenTests.test_is_system!   s*    --//00000r   c                 ^    |                      | j                                                   d S r
   )r   r   is_anonymousr   s    r   test_is_anonymousz$SecurityTokenTests.test_is_anonymous$   s*    002233333r   c                 ^    |                      | j                                                   d S r
   )r   r   has_builtin_administratorsr   s    r   test_has_builtin_administratorsz2SecurityTokenTests.test_has_builtin_administrators'   *    >>@@AAAAAr   c                 ^    |                      | j                                                   d S r
   )r   r   has_nt_authenticated_usersr   s    r   test_has_nt_authenticated_usersz2SecurityTokenTests.test_has_nt_authenticated_users*   r   r   c                 t    |                      | j                            t          j                             d S r
   )r   r   has_privileger   SEC_PRIV_SHUTDOWNr   s    r   test_has_privz SecurityTokenTests.test_has_priv-   s/    11(2LMMNNNNNr   c                 P   |                      | j                            t          j                             |                      | j                            t          j                             |                     | j                            t          j                             d S r
   )r   r   r#   r   r$   set_privilege
assertTruer   s    r   test_set_privz SecurityTokenTests.test_set_priv0   s{    11(2LMMNNN11(2LMMNNN
001KLLMMMMMr   )__name__
__module____qualname__r   r   r   r   r!   r%   r)   __classcell__r   s   @r   r   r      s        & & & & &1 1 14 4 4B B BB B BO O ON N N N N N Nr   r   c                   T     e Zd Z fdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Z xZS )SecurityDescriptorTestsc                     t          t          |                                            t          j                    | _        d S r
   )r   r0   r   r   
descriptorr   s    r   r   zSecurityDescriptorTests.setUp8   s4    %t,,22444"-//r   c                    t           j                            dt          j        d                    }|                     |j        t          j        d                     |                     |j        t          j        d                     |                     |j        d           |                     |j        d            |                     |j	        d           d S )N-O:AOG:DAD:(A;;RPWPCCDCLCSWRCWDWOGA;;;S-1-0-0)S-2-0-0S-2-0-0-512zS-1-5-32-548   i  )
r   r2   	from_sddldom_sidassertEqual	group_sid	owner_sidrevisionsacltype)r   descs     r   test_from_sddlz&SecurityDescriptorTests.test_from_sddl<   s    ",,-\^f^nox^y^yzz)9-)H)HIII)9.)I)IJJJ***D)))F+++++r   c                     |                      t          t          j        j        dt          j        d                     d S )Nfoor5   assertRaises	TypeErrorr   r2   r8   r9   r   s    r   test_from_sddl_invalidsddlz2SecurityDescriptorTests.test_from_sddl_invalidsddlD   s4    )X%8%BE8K[\eKfKfgggggr   c                     |                      t          t          j        j        t          j        d          t          j        d                     d S )Nr6   r5   rD   r   s    r   test_from_sddl_invalidtype1z3SecurityDescriptorTests.test_from_sddl_invalidtype1G   sX    )X%8%BHDTUbDcDcemeuv  fA  fA  	B  	B  	B  	B  	Br   c                 b    d}|                      t          t          j        j        |d           d S Nr4   r5   )rE   rF   r   r2   r8   )r   sddls     r   test_from_sddl_invalidtype2z3SecurityDescriptorTests.test_from_sddl_invalidtype2J   s8    >)X%8%BD#	% 	% 	% 	% 	%r   c                    d}t          j        d          }t           j                            ||          }t           j                            |                    |          |          }|                     |j        |j                   |                     |j        |j                   |                     |j        |j                   |                     |j	        |j	                   d S rK   
r   r9   r2   r8   as_sddlr:   r;   r<   r>   r?   )r   textdomdesc1desc2s        r   test_as_sddlz$SecurityDescriptorTests.test_as_sddlO   s    >y))#--dC88#--emmC.@.@#FF%/:::%/:::UZ000UZ00000r   c                     d}t          j        d          }t           j                            ||          }|                     t
          |j        |           d S rK   )r   r9   r2   r8   rE   rF   rP   )r   rQ   rR   rS   s       r   test_as_sddl_invalidz,SecurityDescriptorTests.test_as_sddl_invalidY   sO    >y))#--dC88)U]D99999r   c                    t          j        d          }d}t           j                            ||          }t           j                            |                                |          }|                     |j        |j                   |                     |j        |j                   |                     |j        |j                   |                     |j	        |j	                   d S Nr5   r4   rO   )r   rR   rQ   rS   rT   s        r   test_as_sddl_no_domainsidz1SecurityDescriptorTests.test_as_sddl_no_domainsid_   s    y))>#--dC88#--emmoosCC%/:::%/:::UZ000UZ00000r   c                     t          j        d          }d}t           j                            ||          }|                     |                                |                    |                     d S rY   )r   r9   r2   r8   assertNotEqualrP   )r   rR   rQ   rS   s       r   test_domsid_nodomsid_as_sddlz4SecurityDescriptorTests.test_domsid_nodomsid_as_sddli   s_    y))>#--dC88EMMOOU]]3-?-?@@@@@r   c                     t          j        d          }|                     t          j        d          df|                                           d S )NzS-2-0-7zS-2-0   )r   r9   r:   split)r   rR   s     r   
test_splitz"SecurityDescriptorTests.test_splito   sF    y))(*733Q7EEEEEr   )r*   r+   r,   r   rA   rG   rI   rM   rU   rW   rZ   r]   ra   r-   r.   s   @r   r0   r0   6   s        0 0 0 0 0, , ,h h hB B B% % %
1 1 1: : :1 1 1A A AF F F F F F Fr   r0   c                   &    e Zd Zd Zd Zd Zd ZdS )DomSidTestsc                 t    t          j        d          }|                     dt          |                     d S NzS-1-5-21)r   r9   r:   strr   sids     r   test_parse_sidzDomSidTests.test_parse_sidv   s4    z**SXX.....r   c                     t          j        d          }t          j        d          }|                     ||           |                     ||           d S re   )r   r9   r:   )r   sid1sid2s      r   test_sid_equalzDomSidTests.test_sid_equalz   sT    
++
++t$$$t$$$$$r   c                     t          j                    }|                     t          |                              d                     d S )Nz	S-1-5-21-)r   
random_sidr(   rf   
startswithrg   s     r   test_randomzDomSidTests.test_random   s<    !##C++K8899999r   c                     t          j                    }|                     t          |                              d                     d S )Nzdom_sid('S-1-5-21-)r   ro   r(   reprrp   rg   s     r   	test_reprzDomSidTests.test_repr   s=    !##S		,,-ABBCCCCCr   N)r*   r+   r,   ri   rm   rq   rt    r   r   rc   rc   t   sU        / / /% % %: : :D D D D Dr   rc   c                       e Zd Zd Zd ZdS )PrivilegeTestsc                 j    |                      dt          j        t          j                             d S NSeShutdownPrivilege)r:   r   privilege_namer$   r   s    r   test_privilege_namez"PrivilegeTests.test_privilege_name   s=    ."1(2LMM	O 	O 	O 	O 	Or   c                 j    |                      t          j        t          j        d                     d S ry   )r:   r   r$   privilege_idr   s    r   test_privilege_idz PrivilegeTests.test_privilege_id   s=    3"/0EFF	H 	H 	H 	H 	Hr   N)r*   r+   r,   r|   r   ru   r   r   rw   rw      s:        O O OH H H H Hr   rw   c                       e Zd Zd ZdS )CheckAccessTestsc                 ,   t           j                            dt          j        d                    }t          j                    }|                     t          ||d          d           t           j        t          j	        ft           j
        t          j        ff}|D ]v\  }}	 t          |||          }# t          $ rR}|                     t          |t                               |j        \  }}	|                     ||           Y d }~od }~ww xY wd S )Nr4   r5   r   )r   r2   r8   r9   r   r:   r   SEC_FLAG_SYSTEM_SECURITYr   NT_STATUS_PRIVILEGE_NOT_HELDSEC_STD_READ_CONTROLNT_STATUS_ACCESS_DENIED	Exceptionr(   
isinstancer   args)
r   r@   r   paramsargnumresultee_nume_msgs
             r   test_check_accessz"CheckAccessTests.test_check_access   s!   ",,-\^f^nox^y^yzz  dE155q999 .24*H,LM
  	- 	-HC-%dE377 - - -
1m < <=== vu  e,,,,,,,,-	- 	-s   #B55
D?ADDN)r*   r+   r,   r   ru   r   r   r   r      s#        - - - - -r   r   )__doc__samba.testssambasamba.dcerpcr   samba.securityr   r   r   testsTestCaser   r0   rc   rw   r   ru   r   r   <module>r      sw  $ ' &     ! ! ! ! ! ! ' ' ' ' ' '            N N N N N- N N N6;F ;F ;F ;F ;Fek2 ;F ;F ;F|D D D D D%+& D D D*H H H H HU[) H H H- - - - -u{+ - - - - -r   