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: //usr/lib/python3/dist-packages/samba/tests/__pycache__/password_hash_ldap.cpython-310.pyc
o

�/ab�@s�dZddlmZmZmZmZddlmZddlm	Z	ddl
mZmZm
Z
ddlmZmZddlmZddlZddlZd	d
�ZGdd�de�ZdS)
a
Tests for source4/dsdb/samdb/ldb_modules/password_hash.c

These tests are designed to also run against Windows to confirm the values
returned from Windows.

To run against Windows:
Set the following environment variables:
   PASSWORD=Administrator password
   USERNAME=Administrator
   SMB_CONF_PATH=/dev/null
   PYTHONPATH=bin/python
   SERVER=Windows server IP

   /usr/bin/python source4/scripting/bin/subunitrun
       samba.tests.password_hash_ldap.PassWordHashLDAPTests
       -U"Administrator%adminpassword"
�)�PassWordHashTests�get_package�	USER_NAME�	USER_PASS)�SamDB)�
ndr_unpack)�drsblobs�drsuapi�misc)�	drs_utils�net)�CredentialsNcCs|d@|d@kS)Nl���)�a1�a2rr�@/usr/lib/python3/dist-packages/samba/tests/password_hash_ldap.py�attid_equal5srcs,eZdZ�fdd�Zdd�Zdd�Z�ZS)�PassWordHashLDAPTestscstt|���dS)N)�superr�setUp)�self��	__class__rrr;szPassWordHashLDAPTests.setUpcCsvdtjd}dtd|j}t�||��|j�}t�|�\}}t�	�}t
��}||_||_
t��|_||j_t��|_d|j_d|j_d|j_d|_tjtjBtjBtjBtjB|_d|_d|_tj|_ d|_!d|_"d|_#d|j$_%d|j$_&|�'|d|�\}}	|	j(}
|
j)}d}t*d|j+j,�D]#}
|j+j-|
}t.|j/tj0�r�t1�2|j�}|�3||d�|j4j5dj6}q�t7t8j9|�}|S)	Nzncacn_ip_tcp:%s[seal]�SERVERzcn=z
,cn=users,ri�i�"�):�os�environr�base_dnr	�get_loadparm�credsr�
drs_DsBind�DsGetNCChangesRequest8r
�GUID�destination_dsa_guid�source_dsa_invocation_id�DsReplicaObjectIdentifier�naming_context�dn�DsReplicaHighWaterMark�
highwatermark�tmp_highest_usn�reserved_usn�highest_usn�uptodateness_vector�DRSUAPI_DRS_INIT_SYNC�DRSUAPI_DRS_PER_SYNC�DRSUAPI_DRS_GET_ANC�DRSUAPI_DRS_NEVER_SYNCED�DRSUAPI_DRS_WRIT_REP�
replica_flags�max_object_count�max_ndr_size�DRSUAPI_EXOP_REPL_OBJ�extended_op�	fsmo_info�partial_attribute_set�partial_attribute_set_ex�mapping_ctr�num_mappings�mappings�DsGetNCChanges�first_object�object�range�
attribute_ctr�num_attributes�
attributesr�attid�%DRSUAPI_ATTID_supplementalCredentialsr�Net�replicate_decrypt�	value_ctr�values�blobrr�supplementalCredentialsBlob)r�binding_strr'�drs�
drs_handle�supported_extensions�req8�	null_guid�level�ctr�obj_item�obj�sc_blob�i�attr�net_ctx�scrrr�get_supplemental_creds_drs?s^

������z0PassWordHashLDAPTests.get_supplemental_creds_drscCs�t�|_|j�tjd�|j�tjd�|j�|j�tdtjd|j|jd�}|j	|d�|�
�}t|d�\}}|�d|j
�ttjt�|j��}|�|�dS)N�USERNAME�PASSWORDzldap://r)�credentials�lp)�ldbzPrimary:WDigest)r
r�set_usernamerr�set_password�guessr`r�add_userr\r�assertEqual�namerr�package_PrimaryWDigestBlob�binascii�a2b_hex�data�check_wdigests)rrar[�pos�package�digestsrrr�$test_wDigest_supplementalCredentialsqs �
�z:PassWordHashLDAPTests.test_wDigest_supplementalCredentials)�__name__�
__module__�__qualname__rr\rp�
__classcell__rrrrr9s2r)�__doc__�samba.tests.password_hashrrrr�samba.samdbr�	samba.ndrr�samba.dcerpcrr	r
�sambarr�samba.credentialsr
rirrrrrrr�<module>s