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

�/at�@s�ddlZddlZddlmZddlmZddlmZm	Z	ddl
mZe�d�Z
e�e
�Ze
�e�e
jdddd	d
�e�e
�Ze
�e�ee
�Ze
�e�e
��\ZZejZee�dkree
��e�d�edZedZGd
d�de�Ze	eed�dS)�N)�dns)�SubunitOptions�TestProgram)�DNSTKeyTestz*dns.py <server name> <server ip> [options]z	--timeout�int�timeoutz Specify timeout for DNS requests)�type�dest�help��csLeZdZ�fdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	�Z
S)�TestDNSUpdatescst|_t|_tt|���dS)N)�server_name�server�	server_ip�superr
�setUp��self��	__class__��6/usr/lib/python3/dist-packages/samba/tests/dns_tkey.pyr5szTestDNSUpdates.setUpcCs|��dS)ztest DNS TKEY handshakeN)�
tkey_transrrrr�	test_tkey:szTestDNSUpdates.test_tkeycCsF|��}|�||j�\}}|�|tj�|�|j�}|�|tj	�dS)z#test DNS update without TSIG recordN)
�make_update_request�dns_transaction_udpr�assert_dns_rcode_equalsr�DNS_RCODE_REFUSED�
search_record�
newrecname�assert_rcode_equals�DNS_RCODE_NXDOMAIN)r�p�response�
response_p�rcoderrr�test_update_wo_tsig?s
z"TestDNSUpdates.test_update_wo_tsigcCs�|��|��}|�|d�|�||j�\}}|�|tj�|jdj	}|�
|jtj�|�
|j
d�|�|j�}|�|tj�dS)z5test DNS update with a TSIG record with a bad keyname�badkeyrN)rr�sign_packetrrrr�DNS_RCODE_NOTAUTH�
additional�rdata�assertEqual�error�DNS_RCODE_BADKEY�mac_sizerr r!r"�rr#r$r%�tsig_recordr&rrr�test_update_tsig_bad_keynameIsz+TestDNSUpdates.test_update_tsig_bad_keynamecCs�|��|��}|�||j�|�||j�\}}|�|tj�|j	dj
}|�|jtj
�|�|jd�|�|j�}|�|tj�dS)z1test DNS update with a TSIG record with a bad MACrN)rr�bad_sign_packet�key_namerrrrr*r+r,r-r.�DNS_RCODE_BADSIGr0rr r!r"r1rrr�test_update_tsig_bad_macYsz'TestDNSUpdates.test_update_tsig_bad_maccCs�|��|��}|�||j�}|�||j�\}}|�|tj�|�	|||�|�
|j�}|�|tj�|jdd�}|�||j�}|�||j�\}}|�|tj�|�	|||�|�
|j�}|�|tj
�dS)z(test DNS update with correct TSIG recordT��deleteN)rrr)r5rrrr�DNS_RCODE_OK�
verify_packetrr r!r")rr#�macr$r%r&rrr�test_update_tsigiszTestDNSUpdates.test_update_tsigcCs.d|j}tj}d}|�tj�}|�|��tjtj�}g}|�|�|�	||�g}t�
�}||_tj|_
tj|_d|_d|_|�|�t�
�}||_tj|_
tj|_d|_d|_|�|�t�
�}||_tj|_
||_||_d|_d|_|�|�t|�|_||_g}	t�
�}||_tj|_
tj|_d|_d|_|	�|�t|	�|_|	|_|�||j�\}
}|�|
tj�|��|� ||j!�}|�||j�\}
}|�|
tj"�|�#|
||�|�$|�}
|�%|
tj"�|j&dd�}|� ||j!�}|�||j�\}
}|�|
tj"�|�#|
||�|�$|j�}
|�%|
tj'�dS)	zAtest DNS update with correct TSIG record (follow Windows pattern)�wini�ri��z
10.1.45.64Tr8N)(r r�
DNS_QCLASS_IN�make_name_packet�DNS_OPCODE_UPDATE�make_name_question�get_dns_domain�
DNS_QTYPE_SOA�append�finish_name_packet�res_rec�name�DNS_QTYPE_A�rr_type�DNS_QCLASS_ANY�rr_class�ttl�length�DNS_QTYPE_AAAAr,�len�nscount�nsrecs�DNS_QTYPE_CNAME�DNS_QCLASS_NONE�ancount�answersrrrrrr)r5r:r;rr!rr")rr rLrMr#�q�	questions�updates�r�prereqsr$r%r<r&rrr�test_update_tsig_windows�s|

�







z'TestDNSUpdates.test_update_tsig_windows)�__name__�
__module__�__qualname__rrr'r3r7r=r\�
__classcell__rrrrr
4s
r
)�module�opts) �sys�optparse�samba.getopt�getopt�options�samba.dcerpcr�samba.tests.subunitrunrr�samba.tests.dns_baser�OptionParser�parser�SambaOptions�	sambaopts�add_option_group�
add_option�CredentialsOptions�credopts�subunitopts�
parse_argsrb�argsrrP�print_usage�exitrrr
r]rrrr�<module>s4



�