HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/samba/tests/dcerpc/__pycache__/samr_change_password.cpython-310.pyc
o

�/an�@s�dZddlZddlZddlZddlmZmZmZmZddl	m
Z
ddlmZddlm
Z
ddlmZmZmZddlmZdd	lmZGd
d�de�ZdS)z$Tests for samba.dcerpc.samr.password�N)�crypto�generate_random_password�generate_random_bytes�ntstatus)�system_session)�Credentials)�SMB_ENCRYPTION_REQUIRED)�samr�security�lsa)�SamDB)�RpcInterfaceTestCasecsdeZdZ�fdd�Z�fdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	ddd�Z
ddd�Z�ZS)�SamrPasswordTestscs�tt|���|��|�d�tj�d�|_tj�d�|_	tj�d�|_
tj�d�|_d|j|_t
�|_|j�|j�|j�|j
�|j�|j�dS)Ni'�SERVER�DOMAIN�USERNAME�PASSWORDzncacn_np:%s[krb5])�superr�setUp�
open_samdb�create_user_account�samba�tests�env_get_var_value�
remote_server�
remote_domain�remote_user�remote_password�remote_binding_stringr�remote_creds�guess�lp�set_username�set_password��self��	__class__��I/usr/lib/python3/dist-packages/samba/tests/dcerpc/samr_change_password.pyr#s
zSamrPasswordTests.setUpcsHtt|���t�|j�t�|j�t�|j�tj	�
|j|j�dS�N)
rr�tearDownr	�Close�user_handle�
domain_handle�handlerr�delete_force�samdb�user_dnr$r&r(r)r+4s
zSamrPasswordTests.tearDowncCsDtj��|_t�|_|j�|j�t�|_t	|j|j|jd�|_
dS)N)�session_info�credentialsr!)rr�env_loadparmr!r�local_credsr r�sessionrr1r$r(r(r)r@s�zSamrPasswordTests.open_samdbcCsH|j�dtj�|_|j�|jt�|j��|_	|j�
|jtj|j	�|_dSr*)�conn�Connect2r
�SEC_FLAG_MAXIMUM_ALLOWEDr/�LookupDomainr�Stringr�
domain_sid�
OpenDomainr.r$r(r(r)�open_domain_handleMs�

�

�z$SamrPasswordTests.open_domain_handlecCsBt�|j�}|j�|j|g�}|j�|jtj|dj	d�|_
dS)Nr)rr<�	user_namer8�LookupNamesr.�OpenUserr
r:�idsr-)r%�name�ridsr(r(r)�open_user_handleXs

�z"SamrPasswordTests.open_user_handlecCspd||_tdd�|_d|j|j��f|_tj�|j|j�|jj	|j|jd|jd|j|j|jd�dS)NzSAMR_USER_%d� zcn=%s,cn=users,%sz
Password for z is )�description�	givenname�surname)
r@r�	user_passr1�	domain_dnr2rrr0�newuser)r%�user_idr(r(r)rcs


�z%SamrPasswordTests.create_user_accountcCsNdd�}zt��t�|||��}Wt��nt��wt��}t|�|_|S)NcSsttdgd�}t�|�d��}t|�}td|�}d|}||d|�<|||||�<|jddd�|dd�<t|�S)Nriz	utf-16-lei��little)�	byteorder)�	bytearrayr�string_to_byte_array�encode�lenr�to_bytes�bytes)�password�data�p�plen�b�ir(r(r)�encode_pw_buffersszCSamrPasswordTests.init_samr_CryptPassword.<locals>.encode_pw_buffer)	r�set_relax_moder�arcfour_encrypt�set_strict_moder	�
CryptPassword�listrY)r%rX�session_keyr^�encrypted_blob�out_blobr(r(r)�init_samr_CryptPasswordqs
z)SamrPasswordTests.init_samr_CryptPassword�P@ssw0rdc
Cs�t�|j|��|j�|_|��|��d}d}t��}d|_|�	||jj
�|_z|j�|j
||�WdStjyb}z!t�|jd�j}t|�|tjkrV|jjdkrVn�WYd}~dSd}~ww)Nrh�r�
disallowed)r	r�get_loadparmrr8r?rF�
UserInfo24�password_expiredrgrdrX�SetUserInfo2r-r�
NTSTATUSError�ctypes�c_uint32�args�value�printr�NT_STATUS_ACCESS_DENIEDr!�weak_crypto)r%rX�level�info�e�coder(r(r)�test_setUserInfo2_Password�s.�
���z,SamrPasswordTests.test_setUserInfo2_PasswordcCsr|j�t�t�|j|��|j�|_|��|��d}d}t�	�}d|_
|�||jj�|_
|j�|j||�dS)Nrhrir)r�set_smb_encryptionrr	rrkr8r?rFrlrmrgrdrXrnr-)r%rXrwrxr(r(r)�$test_setUserInfo2_Password_Encrypted�s�z6SamrPasswordTests.test_setUserInfo2_Password_Encrypted)rh)
�__name__�
__module__�__qualname__rr+rr?rFrrgr{r}�
__classcell__r(r(r&r)r"s

r)�__doc__�osrp�samba.testsrrrrr�
samba.authr�samba.credentialsrr�samba.dcerpcr	r
r�samba.samdbrr
rr(r(r(r)�<module>s