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

eF�c@(�@s�ddlZddlZej�dd�dejd<ddlmZddlmZddl	m
mmZddl
m
mmZddlmZmZmZmZmZmZmZdZdZGd	d
�d
e�ZeGdd�de��Zed
krrdZdZddlZe��dSdS)�Nz
bin/python�1�PYTHONUNBUFFERED)�DynamicTestCase)�KDCBaseTest)�KDC_ERR_S_PRINCIPAL_UNKNOWN�KDC_ERR_ETYPE_NOSUPP�KDC_ERR_PREAUTH_REQUIRED�KU_PA_ENC_TIMESTAMP�NT_PRINCIPAL�NT_SRV_INST�PADATA_ENC_TIMESTAMPFc@seZdZ			ddd�ZdS)�
AsReqBaseTestNc$Cs�|��}|��}|��}	|jdd�}
|
��}|
��}|jt|gd�}
|dur/|jt||gd�}|}|
}|}|}|��}|durE|j	dd�}|}t
�d�}|durS|}nt}|j
|
|||||||||||d|dd�\}}|durqdS|d}|�|�|j||d	|	d
�}|��\}}|�||�}|j|t
��d�}t}|�|||�}|j|t
��d�}|�t|�}|g}|}t
�d�} d	}!|dur�|}!|�|
�}"|j
|
|||||!|||||||| |||"dd�\}#}|�|#�|S)
NT)�require_strongest_key��	name_type�namesi��)�offset�forwardable)�pac_request�preauth_etype_info2r)�kvno)�asn1Spec)�expect_edata�preauth_key�ticket_decryption_keyr)�get_username�get_default_enctypes�get_kvno�get_krbtgt_creds�	get_realm�PrincipalName_creater
r�get_salt�get_KerberosTime�	krb5_asn1�
KDCOptionsr�_test_as_exchange�assertIsNotNone�PasswordKey_from_etype_info2�get_KerberosTimeWithUsec�PA_ENC_TS_ENC_create�
der_encode�
PA_ENC_TS_ENCr	�EncryptedData_create�
EncryptedData�PA_DATA_creater�TicketDecryptionKey_from_creds)$�self�client_creds�sname�expected_error�till�expected_pa_error�expect_pa_edata�client_account�client_as_etypes�client_kvno�krbtgt_creds�krbtgt_account�realm�cname�expected_crealm�expected_cname�expected_srealm�expected_sname�
expected_salt�initial_etypes�initial_kdc_options�initial_error_mode�rep�kdc_exchange_dict�etype_info2r�patime�pausec�pa_ts�enc_pa_ts_usage�preauth_padata�preauth_etypes�preauth_kdc_options�preauth_error_mode�krbtgt_decryption_key�as_rep�rS�?/usr/lib/python3/dist-packages/samba/tests/krb5/as_req_tests.py�_run_as_req_enc_timestamp,s���

�
�
�
�
z'AsReqBaseTest._run_as_req_enc_timestamp)NNNNN)�__name__�
__module__�__qualname__rUrSrSrSrTr
+s
�r
cs^eZdZedd��Z�fdd�Z		ddd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Z�ZS)�AsReqKerberosTestscCsH|��D]\}}dD]}d||f}||f}|jd|g|�R�q
qdS)N)NTFz	%s_pac_%s�test_as_req_no_preauth)�etype_test_permutation_name_idx�generate_dynamic_test)�cls�name�idx�pac�tname�targsrSrSrT�setUpDynamicTestCases�s��z(AsReqKerberosTests.setUpDynamicTestCasescstt|���t|_t|_dS�N)�superrY�setUp�global_asn1_print�
do_asn1_print�global_hexdump�
do_hexdump)r0��	__class__rSrTrf�s
zAsReqKerberosTests.setUpNcs�|��}|��}|���|jdd�}|��}|��}|jt|gd�}	|jt||gd�}
|}|	}|}
|
}|��}t	��fdd�t
jjt
jj
t
jjfD��rOt}nt}|j|||
|d|jd|�|t|�|d�}|j||	||
�d�dS)NF)�require_keysrc3s �|]}|�vo|�vVqdSrdrS)�.0�etype�r8rCrSrT�	<genexpr>�s��z<AsReqKerberosTests._test_as_req_nopreauth.<locals>.<genexpr>)r>r?r@rA�generate_padata_fn�check_error_fn�check_rep_fn�expected_error_moder8rB�kdc_optionsr)r=r<r2�etypes)�get_client_credsrrrrr r
rr!�any�kcrypto�Enctype�AES256�AES128�RC4rr�as_exchange_dict�generic_check_kdc_error�str�_generic_kdc_exchange)r0rCr`rDr1r7r:r;r<r=r2r>r?r@rArBrurGrSrprT�_test_as_req_nopreauth�sZ�����
�z)AsReqKerberosTests._test_as_req_nopreauthcCs(|�|�\}}|j||t�d�d�dS)Nr)r`rCrD)�etype_test_permutation_by_idxr�r#r$)r0�	etype_idxr`r^rwrSrSrT�!_test_as_req_no_preauth_with_args�s
�z4AsReqKerberosTests._test_as_req_no_preauth_with_argscC�|��}|�|�dSrd�rxrU�r0r1rSrSrT�test_as_req_enc_timestamp��z,AsReqKerberosTests.test_as_req_enc_timestampcCr�rd)�get_mach_credsrUr�rSrSrT�test_as_req_enc_timestamp_mac�r�z0AsReqKerberosTests.test_as_req_enc_timestamp_maccCsn|��}|��}|��}|��}|dd�}|jt||gd�}|jr-|j||tdd�dS|j||td�dS)N�rF)r2r5r6)r2r3)	rxrrrr r�strict_checkingrUr)r0r1r:r;r<�wrong_krbtgt_princrSrSrT�test_krbtgt_wrong_principal�s*�
�
�z.AsReqKerberosTests.test_krbtgt_wrong_principalcCs|��}|j|dd�dS)N�99990913024805Z)r4r�r�rSrSrT�test_future_tills

�z#AsReqKerberosTests.test_future_till)NN)
rVrWrX�classmethodrcrfr�r�r�r�r�r��
__classcell__rSrSrkrTrY�s

�2rY�__main__)�sys�os�path�insert�environ�samba.testsr�samba.tests.krb5.kdc_base_testr�samba.tests.krb5.kcrypto�tests�krb5rz�samba.tests.krb5.rfc4120_pyasn1�rfc4120_pyasn1r#�"samba.tests.krb5.rfc4120_constantsrrrr	r
rrrgrir
rYrV�unittest�mainrSrSrSrT�<module>s(
$
gv�