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

�Kyak�@s�ddlZddlZej�dd�dejd<ddlmZddlmm	m
Zddlm
Z
mZmZmZmZmZmZmZmZmZmZmZdZdZGdd	�d	e�Zed
kr`dZdZddlZe��dSdS)�Nz
bin/python�1�PYTHONUNBUFFERED)�RawKerberosTest)�AES256_CTS_HMAC_SHA1_96�ARCFOUR_HMAC_MD5�KDC_ERR_PREAUTH_FAILED�KDC_ERR_PREAUTH_REQUIRED�KDC_ERR_SKEW�
KRB_AS_REP�	KRB_ERROR�KU_PA_ENC_TIMESTAMP�PADATA_ENC_TIMESTAMP�PADATA_ETYPE_INFO2�NT_PRINCIPAL�NT_SRV_INSTFcsteZdZdZ�fdd�Zddd�Zddd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Z�ZS)�KdcTestszP Port of the tests in source4/torture/krb5/kdc-heimdal.c
        To python.
    cstt|���t|_t|_dS�N)�superr�setUp�global_asn1_print�
do_asn1_print�global_hexdump�
do_hexdump)�self��	__class__��</usr/lib/python3/dist-packages/samba/tests/krb5/kdc_tests.pyr4s
zKdcTests.setUpNcCsv|��}|��}|jt|gd�}|jtd|gd�}|jdd�}d}	|j|t|	�|||d|dd|ddd�}
|�|
�}|S)N)�	name_type�names�krbtgti����offsetri���)�padata�kdc_options�cname�realm�sname�	from_time�	till_time�
renew_time�nonce�etypes�	addresses�additional_tickets)	�get_username�	get_realm�PrincipalName_createrr�get_KerberosTime�
AS_REQ_create�str�send_recv_transaction)r�credsr,r#�userr&r%r'�tillr$�req�reprrr�as_req9s6���
zKdcTests.as_reqrcCs�|j|dt��d�}|D]}|dtkr|d}nq
|j|t��d�}|�||d�}|j|d�\}}	|�||	�}
|j|
t�	�d�}
|�
|t|
�}
|j|
t��d�}
|�
t|
�}
|
S)Nze-data)�asn1Speczpadata-typezpadata-valuerr!)�
der_decode�	krb5_asn1�METHOD_DATAr�ETYPE_INFO2�PasswordKey_from_etype_info2�get_KerberosTimeWithUsec�PA_ENC_TS_ENC_create�
der_encode�
PA_ENC_TS_ENC�EncryptedData_creater�
EncryptedData�PA_DATA_creater
)rr6r:�skew�
rep_padata�pa�etype_info2�key�patime�pausec�pa_tsrrr�get_enc_timestamp_pa_dataVs(���z"KdcTests.get_enc_timestamp_pa_datacCs|�|t�dS)zE Check that the kdc response was pre-authentication required
        N)�check_error_repr)rr:rrr�check_pre_authenicationpsz KdcTests.check_pre_authenicationcCs�|�|�|�|dt�t|d�}|�d|�t|dd�}|�d|�d|dvr?t|dd�}|�d|d	@�d
Sd
S)z� Check that the kdc response is an AS-REP and that the
            values for:
                msg-type
                pvno
                tkt-pvno
                kvno
            match the expected values
        �msg-type�pvno��ticketztkt-vno�kvno�enc-partrl�N)�assertIsNotNone�assertEqualr
�int)rr:rU�tkt_vnorXrrr�check_as_replyus
�zKdcTests.check_as_replycCs.|�|�|�|dt�|�|d|�dS)zg Check that the reply is an error message, with the expected
            error-code specified.
        rTz
error-codeN)rZr[r)rr:�expectedrrrrR�s
zKdcTests.check_error_repcC�h|��}tf}|�||�}|�|�|�||�}|j|||gd�}|�|�|dd}|�t|�dS�N�r#rY�etype)�get_user_credsrr;rSrQr^�assertEquals�rr6rcr:r#rrr�test_aes256_cts_hmac_sha1_96��

z%KdcTests.test_aes256_cts_hmac_sha1_96cCr`ra)rdrr;rSrQr^rerfrrr�test_arc4_hmac_md5�rhzKdcTests.test_arc4_hmac_md5cCsj|��}ttf}|�||�}|�|�|�||�}|j|||gd�}|�|�|dd}|�t|�dSra)rdrrr;rSrQr^rerfrrr�test_aes_rc4�s

zKdcTests.test_aes_rc4cCsX|��}ttf}|�||�}|�|�|j||dd�}|j|||gd�}|�|t�dS)Ni)rIrb)rdrrr;rSrQrRr	rfrrr�test_clock_skew�s
zKdcTests.test_clock_skewcCsd|j|��d�}|�d�tf}|�||�}|�|�|�||�}|j|||gd�}|�|t�dS)N)�templatezNot the correct passwordrb)	�insta_credsrd�set_passwordrr;rSrQrRrrfrrr�test_invalid_password�s

zKdcTests.test_invalid_passwordr)r)�__name__�
__module__�__qualname__�__doc__rr;rQrSr^rRrgrirjrkro�
__classcell__rrrrr/s

r�__main__)�sys�os�path�insert�environ�samba.tests.krb5.raw_testcaser�samba.tests.krb5.rfc4120_pyasn1�tests�krb5�rfc4120_pyasn1r>�"samba.tests.krb5.rfc4120_constantsrrrrr	r
rrr
rrrrrrrp�unittest�mainrrrr�<module>s"
82�