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__/compatability_tests.cpython-310.pyc
o

eF�c1)�@s�ddlZddlZej�dd�dejd<ddlmZddlmm	m
Zddlm
Z
mZmZmZmZmZmZmZmZmZmZmZdZdZdZd	Zd
ZGdd�de�Zed
krfdZdZddl Z e �!�dSdS)�Nz
bin/python�1�PYTHONUNBUFFERED)�KDCBaseTest)�AES128_CTS_HMAC_SHA1_96�AES256_CTS_HMAC_SHA1_96�ARCFOUR_HMAC_MD5�KDC_ERR_PREAUTH_REQUIRED�
KRB_AS_REP�	KRB_ERROR�KU_AS_REP_ENC_PART�KU_PA_ENC_TIMESTAMP�PADATA_ENC_TIMESTAMP�PADATA_ETYPE_INFO2�NT_PRINCIPAL�NT_SRV_INSTF�y�zics�eZdZ�fdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Z�ZS)!�SimpleKerberosTestscstt|���t|_t|_dS)N)�superr�setUp�global_asn1_print�
do_asn1_print�global_hexdump�
do_hexdump)�self��	__class__��F/usr/lib/python3/dist-packages/samba/tests/krb5/compatability_tests.pyr7s
zSimpleKerberosTests.setUpcC�*|��}|�|�\}}|�t|d�dS�Nr)�get_user_creds�as_req�assertEqual�MIT_ENC_AS_REP_PART_TYPE_TAG�r�creds�enc�_rrr�test_mit_EncASRepPart_tag<�z-SimpleKerberosTests.test_mit_EncASRepPart_tagcCrr )r!r"r#� HIEMDAL_ENC_AS_REP_PART_TYPE_TAGr%rrr�test_heimdal_EncASRepPart_tagAr*z1SimpleKerberosTests.test_heimdal_EncASRepPart_tagcCs0|��}|�|�\}}d|vr|�d�dSdS)N�kvnozkvno present in EncryptedData�r!r"�fail�rr&r(r'rrr�test_mit_EncryptedData_kvnoF�
�z/SimpleKerberosTests.test_mit_EncryptedData_kvnocCs0|��}|�|�\}}d|vr|�d�dSdS)Nr-zkvno absent in EncryptedDatar.r0rrr�test_heimdal_EncryptedData_kvnoLr2z3SimpleKerberosTests.test_heimdal_EncryptedData_kvnocCsZ|��}|�|�\}}|�t|d�|j|t��d�}t|ddd�}|�t	|@�dS�Nr��asn1Spec�flags�)�base)
r!r"r#r$�
der_decode�	krb5_asn1�
EncTGSRepPart�int�
assertTrue�ENC_PA_REP_FLAG�rr&r'r(�as_repr7rrr�"test_mit_EncASRepPart_FAST_supportRsz6SimpleKerberosTests.test_mit_EncASRepPart_FAST_supportcCsb|��}|�|�\}}|�t|d�|j|t��d�}|d}t|ddd�}|�t	|@�dSr4)
r!r"r#r+r:r;�EncASRepPartr=�assertFalser?r@rrr�&test_heimdal_EncASRepPart_FAST_support\sz:SimpleKerberosTests.test_heimdal_EncASRepPart_FAST_supportcCsP|��}tf}|�||�^}}|�|�|�|�}d|dvr&|�d�dSdS)N�saltrz8(MIT) Salt not populated for ARCFOUR_HMAC_MD5 encryption�r!r�as_pre_auth_req�check_preauth_rep�get_etype_info2r/�rr&�etypes�repr(�etype_info2rrr�test_mit_arcfour_saltg�

��z)SimpleKerberosTests.test_mit_arcfour_saltcCsP|��}tf}|�||�^}}|�|�|�|�}d|dvr&|�d�dSdS)NrFrz8(Heimdal) Salt populated for ARCFOUR_HMAC_MD5 encryptionrGrKrrr�test_heimdal_arcfour_saltqrPz-SimpleKerberosTests.test_heimdal_arcfour_saltcCs^|��}|��}|��}|�|�}|�|�}|j||dd�|�||�}|j||ddd�dS�NF��service_ticketT)rT�expect_ticket_checksum��get_client_creds�get_service_creds�get_krbtgt_creds�TicketDecryptionKey_from_creds�get_tgt�
verify_ticket�get_service_ticket�r�
user_creds�target_creds�krbtgt_creds�key�tgtrTrrr�test_heimdal_ticket_signature{�



�z1SimpleKerberosTests.test_heimdal_ticket_signaturecCs^|��}|��}|��}|�|�}|�|�}|j||dd�|�||�}|j||ddd�dSrRrVr^rrr�test_mit_ticket_signature�rez-SimpleKerberosTests.test_mit_ticket_signaturecCs`|��}|��}|��}|�|�}|�|�}|j||dd�|�||�}|j||dddd�dS)NFrST)rTrU�expect_full_checksumrVr^rrr�test_full_signature�s



�z'SimpleKerberosTests.test_full_signaturecCs�|��}|��}|jt|gd�}|jtd|gd�}|jdd�}t�d�}d}	|j|	t	|�|||d|dd|ddd�}
|�
|
�}|||||fS)N)�	name_type�names�krbtgti��)�offset�forwardable����padata�kdc_options�cname�realm�sname�	from_time�	till_time�
renew_time�noncerL�	addresses�additional_tickets)�get_username�	get_realm�PrincipalName_createrr�get_KerberosTimer;�
KDCOptions�
AS_REQ_create�str�send_recv_transaction)rr&rL�userrsrrrt�tillrqrp�reqrMrrrrH�s8��
�
z#SimpleKerberosTests.as_pre_auth_reqcCs.|�|�|�|dt�|�|dt�dS)N�msg-typez
error-code)�assertIsNotNoner#r
r)rrMrrrrI�s
z%SimpleKerberosTests.check_preauth_repcCsN|j|dt��d�}|D]}|dtkr|d}nq
|j|t��d�}|S)Nze-datar5zpadata-typezpadata-value)r:r;�METHOD_DATAr�ETYPE_INFO2)rrM�
rep_padata�parNrrrrJ�s���z#SimpleKerberosTests.get_etype_info2cCstttf}|�||�\}}}}}|�|�|�|�}|�||d�}	|��\}
}|�|
|�}|j	|t
��d�}|�|	t
|�}|j	|t
��d�}|�t|�}t
�d�}
|g}|j|t|
�|||d|dd|ddd�}|�|�}|�|�|d}|�|t�|d}|	�t|dd�}||fS)	Nrr5rmrnror�zenc-part�cipher)rrrrHrIrJ�PasswordKey_from_etype_info2�get_KerberosTimeWithUsec�PA_ENC_TS_ENC_create�
der_encoder;�
PA_ENC_TS_ENC�EncryptedData_creater�
EncryptedData�PA_DATA_creater
rr�r�r�r�r#r	�decryptr)rr&rLrMrrrtrsr�rNrb�patime�pausec�pa_tsrqrpr��msg_type�enc_part�enc_as_rep_partrrrr"�sL�


�

�zSimpleKerberosTests.as_req)�__name__�
__module__�__qualname__rr)r,r1r3rBrErOrQrdrfrhrHrIrJr"�
__classcell__rrrrr5s"


 r�__main__)"�sys�os�path�insert�environ�samba.tests.krb5.kdc_base_testr�samba.tests.krb5.rfc4120_pyasn1�tests�krb5�rfc4120_pyasn1r;�"samba.tests.krb5.rfc4120_constantsrrrrr	r
rrr
rrrrrr+r$r?rr��unittest�mainrrrr�<module>s(
8k�