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/krb5/__pycache__/spn_tests.cpython-310.pyc
o

eF�c��@s�ddlZddlZej�dd�dejd<ddlmZddlZddlm	Z	ddl
mZddlm
Z
mZmZmZd	Zd	ZeGd
d�de	��ZedkrVd	Zd	ZddlZe��dSdS)
�Nz
bin/python�1�PYTHONUNBUFFERED)�DynamicTestCase)�KDCBaseTest)�KerberosCredentials)�AES256_CTS_HMAC_SHA1_96�ARCFOUR_HMAC_MD5�KDC_ERR_S_PRINCIPAL_UNKNOWN�NT_PRINCIPALFcs�eZdZejjejjejjd�Zdddddd�Z	e
�fdd	��Ze
d
d��Zdd
�Z
�fdd�Zddd�Zddd�Zdd�Zdd�Z�ZS)�SpnTests)�computer�server�rodczldap/{{account}}z&ldap/{{account}}/{netbios_domain_name}z"ldap/{{account}}/{dns_domain_name}zldap/{{account}}/testz'ldap/{{account}}:test/{dns_domain_name})�2_part�3_part_our_domain�3_part_our_realm�3_part_not_our_realm�3_part_instancecst���d|_dS�N)�super�
setUpClass�_mock_rodc_creds)�cls��	__class__��</usr/lib/python3/dist-packages/samba/tests/krb5/spn_tests.pyr:s

zSpnTests.setUpClasscCsV|j��D]#\}}|j��D]\}}|�d|��}||f}|jd|g|�R�qqdS)N�_spn_�test_spn)�test_account_types�items�	test_spns�generate_dynamic_test)r�account_type_name�account_type�spn_name�spn�tname�targsrrr�setUpDynamicTestCases@s��zSpnTests.setUpDynamicTestCasescCs,|�|�}|�||�}|jt|�d�d�}|��}|�|�}|��}|��}|�	�}	|�
|jj�}
t
tf}||jjur>t
}nd}|j||d�}
|�d�dkrl|�|�sX|�|	�rl||jjurl||jjurlt}|j}d}nd}d}|j}|j|j|j|j||
|||j|||
ddd�
}|j|d|j||d	�dS)
N�/)�	name_type�names)�etype�r�0F)
�expected_crealm�expected_cname�expected_srealm�expected_sname�ticket_decryption_key�check_rep_fn�check_error_fn�check_kdc_private_fn�expected_error_mode�tgt�authenticator_subkey�kdc_options�expect_edata)�cname�realm�sname�etypes)�
_get_creds�_format_spn�PrincipalName_creater
�split�get_client_creds�get_tgt�	get_samdb�domain_netbios_name�domain_dns_name�	RandomKey�session_keyr-rr�AccountType�SERVER�TicketDecryptionKey_from_creds�count�endswith�RODCr	�generic_check_kdc_error�generic_check_kdc_rep�tgs_exchange_dict�crealmr=�srealm�generic_check_kdc_private�_generic_kdc_exchange)�selfr$r&�target_credsr?�client_credsr9�samdb�netbios_domain_name�dns_domain_name�subkeyr@�ticket_etype�decryption_keyr8r6r5�kdc_exchange_dictrrr�_test_spn_with_argsHsh
�
����
�zSpnTests._test_spn_with_argscst���t|_t|_dSr)r�setUp�global_asn1_print�
do_asn1_print�global_hexdump�
do_hexdump)rYrrrrd�s

zSpnTests.setUpNcst��fdd�|�S)Ncs��|��Sr)rB)r&��credsrYrr�<lambda>�sz'SpnTests._format_spns.<locals>.<lambda>)�map)rY�spnsrjrrir�_format_spns�szSpnTests._format_spnscCs>|��}|j|��|��d�}|dur|��}|j|d�}|S)N)r]r^��account)rG�formatrHrI�get_username)rYr&rjr\�account_namerrrrB�s
�zSpnTests._format_spncCsX|�|j���}||jjur!|j}|dur|�|�}|t|�_|S|j|d|id�}|S)Nr&)r$�opts)	rnr!�valuesrLrQr�_get_mock_rodc_creds�type�get_cached_creds)rYr$rmrjrrrrA�s

���zSpnTests._get_credscCs0|��}|D]}|j|jd�}||jvr|j�|�q|��}t�||j�}t�	|�}t�
|jtjd�|d<|�|�t
�}|�|���|�|j���|�|j�|�|j�|�|j�|�|j�|�|�|�|j�|j|tjdgd�}t|djddd��}	|� |	�|�!||�}
|�"||
�|S)Nro�servicePrincipalNamezmsDS-KeyVersionNumber)�base�scope�attrsr)�idx)#�get_mock_rodc_ctxrq�myname�SPNs�appendrG�ldb�Dn�acct_dn�Message�MessageElement�FLAG_MOD_REPLACE�modifyr�guess�get_lp�	set_realmr>�upper�
set_domain�domain_name�set_password�	acct_pass�set_username�set_workstation�samname�set_dn�set_spn�search�
SCOPE_BASE�int�get�set_kvno�get_keys�creds_set_keys)rYrm�rodc_ctxr&r\�rodc_dn�msgrj�res�kvno�keysrrrrv�sB
�
�

�
zSpnTests._get_mock_rodc_credsr)�__name__�
__module__�__qualname__rrL�COMPUTERrMrQrr!�classmethodrr)rcrdrnrBrArv�
__classcell__rrrrr+s*��
;

r�__main__)�sys�os�path�insert�environ�samba.testsrr��samba.tests.krb5.kdc_base_testr�samba.tests.krb5.raw_testcaser�"samba.tests.krb5.rfc4120_constantsrrr	r
rergrr��unittest�mainrrrr�<module>s(
%�