
    b1                     ~    d 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
 ddlmZ ddlmZ ddlZ G d	 d
e          ZdS )zTests for samba.dcerpc.sam.    )samrsecuritylsa)Credentials)TestCase)dom_sid)NTSTATUSError)NT_STATUS_ACCESS_DENIEDNc                   8    e Zd Zd Zd Zd Zd Zd Zd Zd Z	dS )	LsaTestsc                     |                                  | _        t          j                            d          | _        d S )NSERVER)get_loadparmlpsambatestsenv_get_var_valueserver)selfs    8/usr/lib/python3/dist-packages/samba/tests/dcerpc/lsa.pysetUpzLsaTests.setUp!   s0    ##%%k33H==    c                    t                      }|                    | j                   |                                 t	          j        d| j        z  | j        |          }t	          j                    }t	          j                    }t          d          }||_
        |g|_        d|_        t	          j                    }t          j        }d}t          j        }	t          j        }
|                    |||||	|
          \  }}}|                     |d           |                     |j        d           |                     |j        d         j        j        d           |                    |||||	|
          \  }}}|                     |d           |                     |j        d           |                     |j        d         j        j        d           |                    |||||	|
           |                    |||||	|
           d S Nncacn_ip_tcp:%s[schannel,seal]S-1-5-7   r   zANONYMOUS LOGONr   guessr   set_machine_accountr   lsarpcr   SidArraySidPtrr   sidsidsnum_sidsTransNameArray2LSA_LOOKUP_NAMES_ALL'LSA_LOOKUP_OPTION_SEARCH_ISOLATED_NAMESLSA_CLIENT_REVISION_2LookupSids3assertEqualcountnamesnamestring)r   machine_credscr%   r$   xr.   levelr-   lookup_optionsclient_revisiondomainsdomains2names2count2s                  r   test_lsa_LookupSids3_multiplez&LsaTests.test_lsa_LookupSids3_multiple%   s   #DG$$$))+++J,t{:G 
 |~~jllIE	#%%(D3
 #$--eUE>[j"k"k%"""a(((Q,3*	, 	, 	,%&]]4un^m%n%n"66###q)))a-4*	, 	, 	, 	
dE5%QQQ	dE5%QQQQQr   c                    t                      }|                    | j                   |                                 t	          j        d| j        z  | j        |          }t	          j                    }t	          j                    }t          d          }||_
        |g|_        d|_        t	          j                    }t          j        }d}t          j        }	t          j        }
|                    |||||	|
          \  }}}|                     |d           |                     |j        d           |                     |j        d         j        j        d           t	          j        d| j        z  | j        |          }|                    |||||	|
          \  }}}|                     |d           |                     |j        d           |                     |j        d         j        j        d           d S r   r   )r   r1   r2   r%   r$   r3   r.   r4   r-   r5   r6   r7   s               r   #test_lsa_LookupSids3_multiple_connsz,LsaTests.test_lsa_LookupSids3_multiple_connsN   s   #DG$$$))+++J,t{:G 
 |~~jllIE	#%%(D3
 #$--0505050>0?#A #A% 	"""a(((Q,3*	, 	, 	, J,t{:G 
 #$--0505050>0?#A #A% 	"""a(((Q,3*	, 	, 	, 	, 	,r   c                 8   t                      }|                    | j                   |                                 t	          j        d| j        z  | j        |          }|                    ddd          \  }}t	          j        d| j        z  | j        |          }t	          j                    }|g}t          j	        }d}	t          j
        }
t          j        }|                    ||||	|
|          \  }}}	|                    ||||	|
|          \  }}}	|                     |	d           |                     |j        d           t	          j                    }t	          j                    }|j        d         j        |_        t	          j                    }|g|_        d|_        t          j	        }d}	d}
t          j        }|                    ||||	|
|          \  }}}	|                     |	d           |                     |j        d           |                     |j        d         j        j        |j                   t	          j                    }|g}t          j	        }d}	t          j
        }
t          j        }|                    ||||	|
|          \  }}}	dS )
        Test by going back and forward between real DB lookups
        name->sid->name to ensure the sam.ldb handle is fine once
        shared
        ncacn_np:%s[seal]Nr   r   r   )r   r   r   r    r   r!   r   GetUserNameTransSidArray3r(   r)   r*   LookupNames4r,   r-   r'   r#   r%   r$   r"   r&   r+   r.   r/   r0   )r   r1   c_normalusernamedomainr2   r%   r.   r4   r-   r5   r6   r7   r$   lookup_sidss                  r   *test_lsa_LookupNames4_LookupSids3_multiplez3LsaTests.test_lsa_LookupNames4_LookupSids3_multiple   s    $DG$$$))+++:$+-G 
 $//dDAA&J,t{:G 
 "$$
(D3!"0405050>0?"A "A$ "#0405050>0?"A "A$ 	"""Q''' #%%jll)A,"lnn5 (3"#--0505050>0?#A #A% 	"""a(((Q,3!	* 	* 	* "$$
(D3!"0405050>0?"A "A$r   c                    t                      }|                    | j                   |                                 t	          j        d| j        z  | j        |          }|                    ddd          \  }}t	          j        d| j        z  | j        |          }t	          j                    }|g}t          j	        }d}	t          j
        }
t          j        }|                    ||||	|
|          \  }}}	t	          j        d| j        z  | j        |          }t	          j                    }|g}t          j	        }d}	t          j
        }
t          j        }|                    ||||	|
|          \  }}}	dS )r?   r@   Nr   r   )r   r   r   r    r   r!   r   rA   rB   r(   r)   r*   rC   )r   r1   rD   rE   rF   r2   r%   r.   r4   r-   r5   r6   r7   s                r   $test_lsa_LookupNames4_multiple_connsz-LsaTests.test_lsa_LookupNames4_multiple_conns   s    $DG$$$))+++:$+-G 
 $//dDAA&J,t{:G 
 "$$
(D3!"0405050>0?"A "A$ J,t{:G 
 "$$
(D3!"0405050>0?"A "A$r   c           	      \   t                      }|                    | j                   |                                 t	          j        d| j        z  | j        |          }|                    d d d           \  }}t	          j                    }|g}t          j	        }d}t          j
        }	t          j        }
|                     t                    5 }|                    |||||	|
           d d d            n# 1 swxY w Y   |j        j        d         t"          k    rt%          d          d S )Nr@   r   z:LookupNames4 without schannel must fail with ACCESS_DENIED)r   r   r   r    r   r!   r   rA   rB   r(   r)   r*   assertRaisesr	   rC   	exceptionargsr
   AssertionError)r   r1   rD   rE   rF   r%   r.   r4   r-   r5   r6   es               r   &test_lsa_LookupNames4_without_schannelz/LsaTests.test_lsa_LookupNames4_without_schannel  sd   #DG$$$))+++:$+-G 
 $//dDAA&"$$
(D3}-- 	3!!%"&"'"'"0"13 3 3	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 KQ#::: !]^^^ ;:s   C77C;>C;c           	         t                      }|                    | j                   |                                 t	          j        d| j        z  | j        |          }t	          j                    }t	          j                    }t          d          }||_
        |g|_        d|_        t	          j                    }t          j        }d}t          j        }	t          j        }
|                     t$                    5 }|                    |||||	|
           d d d            n# 1 swxY w Y   |j        j        d         t,          k    rt/          d          d S )Nzncacn_ip_tcp:%s[seal]r   r   r   z9LookupSids3 without schannel must fail with ACCESS_DENIED)r   r   r   r    r   r!   r   r"   r#   r   r$   r%   r&   r'   r(   r)   r*   rL   r	   r+   rM   rN   r
   rO   )r   r1   r2   r%   r$   r3   r.   r4   r-   r5   r6   rP   s               r   %test_lsa_LookupSids3_without_schannelz.LsaTests.test_lsa_LookupSids3_without_schannel.  sy   #DG$$$))+++J#dk1G 
 |~~jllIE	#%%(D3}-- 	+MM$()+ + +	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ KQ#::: !\]]] ;:s   >D%%D),D)N)
__name__
__module____qualname__r   r;   r=   rH   rJ   rQ   rS    r   r   r   r      s        > > >'R 'R 'RR3, 3, 3,lSA SA SAl4A 4A 4Al_ _ _<^ ^ ^ ^ ^r   r   )__doc__samba.dcerpcr   r   r   samba.credentialsr   samba.testsr   samba.dcerpc.securityr   r   r	   samba.ntstatusr
   r   rW   r   r   <module>r^      s   * " ! , , , , , , , , , , ) ) ) ) ) )             ) ) ) ) ) )       2 2 2 2 2 2    n^ n^ n^ n^ n^x n^ n^ n^ n^ n^r   