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

�Kya��@sNddlZddlZej�dd�dejd<ddlmZddlmZddl	m
Z
mZddlm
Z
dd	lmZdd
lmZddlmZddlmZdd
lmZddlmZddlmZddlmZddlmZddlm Z!ddl"m#Z#m$Z$Gdd�de%�Z&Gdd�de%�Z'Gdd�de(�Z)dd�Z*dd�Z+dd�Z,d d!�Z-d"d#�Z.d$d%�Z/d&d'�Z0Gd(d)�d)e%�Z1Gd*d+�d+e1�Z2Gd,d-�d-e2�Z3Gd.d/�d/e2�Z4Gd0d1�d1e4�Z5Gd2d3�d3e4�Z6Gd4d5�d5e1�Z7Gd6d7�d7e%�Z8Gd8d9�d9e8�Z9Gd:d;�d;e9�Z:Gd<d=�d=e9�Z;Gd>d?�d?e9�Z<Gd@dA�dAe8�Z=GdBdC�dCe8�Z>GdDdE�dEe8�Z?GdFdG�dGe8�Z@e&jAe3e&jBe5e&jCe6e&jDe7iZEe'jFe<e'jGe:e'jHe;e'jIe=e'jJe>e'jKe?e'jLe@iZMdHdI�ZNdJdK�ZOGdLdM�dMe%�ZPdNdO�ZQdPdQ�ZRdidRdS�ZSdidTdU�ZTdVdW�ZUdXdY�ZVdZd[�ZWd\d]�ZXd^d_�ZYd`da�ZZdidbdc�Z[ddde�Z\Gdfdg�dge�Z]e^dhk�r�ddl_Z_e_�`�dSdS)j�Nz
bin/python�1�PYTHONUNBUFFERED)�gcd)�reduce)�pack�unpack)�crc32)�hashes)�hmac)�
algorithms)�modes)�Cipher)�default_backend)�
PBKDF2HMAC)�TestCase)�Credentials)�generate_random_bytes)�
get_string�	get_bytesc@s(eZdZdZdZdZdZdZdZdZ	dS)	�Enctype�������N)
�__name__�
__module__�__qualname__�DES_CRC�DES_MD4�DES_MD5�DES3�AES128�AES256�RC4�r'r'�:/usr/lib/python3/dist-packages/samba/tests/krb5/kcrypto.pyrDsrc@s4eZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdS)�	Cksumtyperrr�����riv���N)
rrr�CRC32�MD4�MD4_DES�MD5�MD5_DES�	SHA1_DES3�SHA1�SHA1_AES128�SHA1_AES256�HMAC_MD5r'r'r'r(r)Nsr)c@seZdZdS)�InvalidChecksumN)rrrr'r'r'r(r9[sr9cCs |t|�||}|t|�S�N)�len�bytes)�s�padsize�padlenr'r'r(�_zeropad_sr@cCs,t|�t|�ks
J�tdd�t||�D��S)NcSsg|]\}}||A�qSr'r')�.0�x�yr'r'r(�
<listcomp>h�z_xorbytes.<locals>.<listcomp>)r;r<�zip)�b1�b2r'r'r(�	_xorbytesesrIcCs@t|�t|�ks
J�d}t||�D]
\}}|||AO}q|dkS)Nr)r;rF)�mac1�mac2�resrBrCr'r'r(�
_mac_equalks
rMcCs"t�|�t��}|�|�|��Sr:)r	�Hashr�update�finalize)�string�algo_cls�hash_ctxr'r'r(�SIMPLE_HASHus
rTcCs$t�||�t��}|�|�|��Sr:)r
�HMACrrOrP)�keyrQrR�hmac_ctxr'r'r(�	HMAC_HASH{s
rXcsrdd��dd�}t��}�|t�|�}d���fdd�t||�D�����fdd�td	|��D�}t||�S)
Ncs<|dt��|d��t���fdd�tt���D��S)Nr+cs8g|]}�|��?�|�dd�>d@B�qS�rr+�r'�rA�i��nbytes�remain�strr'r(rD�s���z0_nfold.<locals>.rotate_right.<locals>.<listcomp>)r;r<�range)r`�nbitsr'r]r(�rotate_right�s
�z_nfold.<locals>.rotate_rightcsjt|��dd�t||�D��tdd��D��r,��fdd�t��D��tdd��D��stdd��D��S)NcSsg|]\}}||�qSr'r')rA�a�br'r'r(rD�rEz7_nfold.<locals>.add_ones_complement.<locals>.<listcomp>css�|]}|d@VqdS)i���Nr'�rArBr'r'r(�	<genexpr>�s�z6_nfold.<locals>.add_ones_complement.<locals>.<genexpr>cs,g|]}�|�dd?�|d@�qSrYr'r[��n�vr'r(rD�s,cS�g|]}|�qSr'r'rfr'r'r(rD��)r;rF�anyrar<)�str1�str2r'rhr(�add_ones_complement�s�z#_nfold.<locals>.add_ones_complement�c3s�|]
}��d|�VqdS)�
Nr'r[)rcr`r'r(rg�s�z_nfold.<locals>.<genexpr>c3s �|]}�||��VqdSr:r'�rA�p)�bigstrr^r'r(rg�s�r)r;r�joinrar)r`r^rp�slen�lcm�slicesr')rur^rcr`r(�_nfold�s
"
rzcCs|dvS)N)ss��������ss��������s����s����s����s����s����s����s����s����sss����s�����r')�keybytesr'r'r(�_is_weak_des_key�sr|c@�eZdZedd��ZdS)�_EnctypeProfilecCs"t|�|jkrtd��t|j|�S)N�Wrong seed length)r;�seedsize�
ValueError�Key�enctype)�cls�seedr'r'r(�
random_to_key�sz_EnctypeProfile.random_to_keyN)rrr�classmethodr�r'r'r'r(r~�sr~c@s<eZdZedd��Zedd��Zedd��Zedd��Zd	S)
�_SimplifiedEnctypecCsXt||j�}d}t|�|jkr"|�||�}||7}|}t|�|jks|�|d|j��S)Nrqr)rz�	blocksizer;r��
basic_encryptr�)r�rV�constant�	plaintext�rndseed�
ciphertextr'r'r(�derive�s�z_SimplifiedEnctype.derivec	Cst|�|td|d��}|�|td|d��}|durt|j�}|t||j�}t|j||j�}|�	||�|d|j
�S)N�>iB�U�)r�r�get_random_bytesr�r@r>rX�contents�hashalgor��macsize)	r�rV�keyusager��
confounder�ki�ke�basic_plaintextr
r'r'r(�encrypt�s
z_SimplifiedEnctype.encryptcCs�|�|td|d��}|�|td|d��}t|�|j|jkr"td��|d|j�||jd�}}t|�|jdkr@td��|�||�}t|j	||j
�}	|	d|j�}
t||
�s^td��||jd�S)Nr�r�r��ciphertext too shortrz,ciphertext does not meet padding requirement�ciphertext integrity failure)
r�rr;r�r�r�r>�
basic_decryptrXr�r�rMr9)r�rVr�r�r�r��basic_ctext�macr�r
�expmacr'r'r(�decrypt�s"
z_SimplifiedEnctype.decryptcCs<t||j�}|dt|�|j�}|�|d�}|�||�S)Nsprf)rTr�r;r�r�r�)r�rVrQ�hashval�	truncated�kpr'r'r(�prf�sz_SimplifiedEnctype.prfN)rrrr�r�r�r�r�r'r'r'r(r��s


	
r�c@s\eZdZejZdZdZdZdZ	dZ
ejZ
edd��Zedd��Zed	d
��Zedd��Zd
S)�_DES3CBC��r+�cCsddd�}t|�dkrtd��||dd��||dd��||dd��}}}t|j|||�S)Ncs�dd��t��dksJ��fdd��D�}�t�fdd�td�D���}tdd�||gD��}t|�r?t|dd	Ag�|d<|S)
NcSs*|dM}t|d@��d�dr|S|dBS)N���rrr)�bin�count)rer'r'r(�paritys"z6_DES3CBC.random_to_key.<locals>.expand.<locals>.parityr*csg|]}�|d@��qS)r�r'�rAre)r�r'r(rDrEz:_DES3CBC.random_to_key.<locals>.expand.<locals>.<listcomp>c3s$�|]
}�|d@|d>VqdS)rNr'r[)r�r'r(rgs�"z9_DES3CBC.random_to_key.<locals>.expand.<locals>.<genexpr>cSrkr'r'r�r'r'r(rDrl��)r;�sumrar<r|)r��
firstbytes�lastbyter{r')r�r�r(�expandsz&_DES3CBC.random_to_key.<locals>.expandr�rr*r-)r;r�r�r�)r�r�r��k1�k2�k3r'r'r(r�s

4z_DES3CBC.random_to_keycCs8|dur|dkrtd��|�t||d��}|�|d�S)Nrqz%Invalid DES3 string-to-key parametersr��kerberos)r�r�rzr�)r�rQ�salt�params�kr'r'r(�
string_to_key&sz_DES3CBC.string_to_keycC�Nt|�ddks
J�t�|j�}t�td��}t||t���	�}|�
|�}|S�Nr+r)r;�ciphers�	TripleDESr�r�CBCr<r
r�	encryptorrO)r�rVr��algo�cbcr�r�r'r'r(r�-�
z_DES3CBC.basic_encryptcCr�r�)r;r�r�r�rr�r<r
r�	decryptorrO)r�rVr�r�r�r�r�r'r'r(r�6r�z_DES3CBC.basic_decryptN)rrrrr#r��keysizer�r�r>r�r	r5r�r�r�r�r�r�r'r'r'r(r�s 


r�c@sBeZdZdZdZdZejZe	dd��Z
e	dd��Ze	dd	��Zd
S)�_AESEnctyperrr,c	CsRtd|pd�\}t|�}tt��|j||t�d�}|�|�}|�|�}|�|d�S)Nz>Ls)�	algorithm�lengthr��
iterations�backendr�)	rrrr	r5r�rr�r�)	r�rQr�r�r��pwbytes�kdfr��tkeyr'r'r(r�Gs�

z_AESEnctype.string_to_keycs�t|�dksJ�t�|j�}t�td��}t||t����fdd�}|t	|d��}t|�dkrMt|�dp6d}|dd�|dd�|dd�d|�}|S)Nrc����}|�|�}|Sr:)r�rO)r�r�r���aes_ctxr'r(�aes_encrypt\�
z._AESEnctype.basic_encrypt.<locals>.aes_encrypti��i�)
r;r��AESr�rr�r<r
rr@)r�rVr�r�r�r��ctext�lastlenr'r�r(r�Ts,z_AESEnctype.basic_encryptc
st��dksJ�t�|j�}t�td��}t||t����fdd�}t��dkr,|��S�fdd�t	dt��d�D�}t|d�}td�}d}	|dd	�D]
}
|	t
||
�|�7}	|
}qM||d	�}
t
|
d|�|d�}|
|d�}|	t
||d|�|�7}	|	|S)
Nrcr�r:)r�rO)r�r�r�r�r'r(�aes_decryptqr�z._AESEnctype.basic_decrypt.<locals>.aes_decryptcsg|]
}�||d��qS)rr'rs)r�r'r(rDysz-_AESEnctype.basic_decrypt.<locals>.<listcomp>r���rqr�)r;r�r�r�rr�r<r
rrarI)
r�rVr�r�r�r��cblocksr��prev_cblockr�re�
lastplaintext�omittedr')r�r�r(r�is&z_AESEnctype.basic_decryptN)
rrrr�r>r�r	r5r�r�r�r�r�r'r'r'r(r�@s

r�c@�eZdZejZdZdZdS)�
_AES128CTSrN)rrrrr$r�r�r�r'r'r'r(r���r�c@r�)�
_AES256CTS� N)rrrrr%r�r�r�r'r'r'r(r��r�r�c@sVeZdZejZdZdZedd��Z	e
dd��Ze
dd��Ze
dd	��Z
e
d
d��ZdS)
�_RC4rcCs(ddd�}||vr
||n|}td|�S)Nr+rr)rr�<i)r)r��table�msusager'r'r(�	usage_str�s

z_RC4.usage_strcCs4t|�}t�}|��|�|�|��}t|j|�Sr:)rr�
set_anonymous�set_password�get_nt_hashr�r�)r�rQr�r��
utf8string�tmp�nthashr'r'r(r��s
z_RC4.string_to_keyc
Cst|durtd�}t|j|�|�tj�}t|||tj�}t||tj�}tt�|�dt	���
�}|�||�}	||	S)Nr+)r�rXr�r�r	r2r
r��ARC4rr�rO)
r�rVr�r�r�r��cksumr�r�r�r'r'r(r��s��z_RC4.encryptcCs�t|�dkr
td��|dd�|dd�}}t|j|�|�tj�}t||tj�}tt�	|�dt
����}|�|�}	t||	tj�}
t
||
�}|sc|dkrct|jtdd�tj�}t||	tj�}
t
||
�}|sitd��|	dd�S)Nr�r�r�	r�r+r�)r;r�rXr�r�r	r2r
r�r�rr�rOrMrr9)r�rVr�r�r�r�r�r�r�r��	exp_cksum�okr'r'r(r��s(��


z_RC4.decryptcCst|j|tj�Sr:)rXr�r	r5)r�rVrQr'r'r(r��sz_RC4.prfN)rrrrr&r�r�r��staticmethodr�r�r�r�r�r�r'r'r'r(r��s



r�c@r})�_ChecksumProfilecCs$|�|||�}t||�std��dS)Nzchecksum verification failure)�checksumrMr9)r�rVr��textr��expectedr'r'r(�verify�s
�z_ChecksumProfile.verifyN)rrrr�r�r'r'r'r(r��sr�c�8eZdZedd��Ze�fdd��Zedd��Z�ZS)�_SimplifiedChecksumcCs6|j�|td|d��}t|j||jj�}|d|j�S)Nr��)�encr�rrXr�r�r�)r�rVr�r��kcr
r'r'r(r��sz_SimplifiedChecksum.checksumcs0|j|jjkrtd��tt|��||||�dS�NzWrong key type for checksum)r�r�r��superr�r��r�rVr�r�r���	__class__r'r(r��sz_SimplifiedChecksum.verifycCs|jSr:)r��r�r'r'r(�checksum_len�sz _SimplifiedChecksum.checksum_len�rrrr�r�r�r�
__classcell__r'r'rr(r��s
r�c@�eZdZdZeZdS)�_SHA1AES128r,N)rrrr�r�r�r'r'r'r(r	�r	c@r)�_SHA1AES256r,N)rrrr�r�r�r'r'r'r(rr
rc@r)�	_SHA1DES3r�N)rrrr�r�r�r'r'r'r(rr
rcr�)�_HMACMD5cCs4t|jdtj�}tt�|�|tj�}t||tj�S)Ns
signaturekey)rXr�r	r2rTr�r�)r�rVr�r��ksign�md5hashr'r'r(r�sz_HMACMD5.checksumcs.|jtjkr
td��tt|��||||�dSr�)r�rr&r�rr
r�rrr'r(r�sz_HMACMD5.verifycC�tjjSr:�r	r2�digest_sizerr'r'r(r�z_HMACMD5.checksum_lenrr'r'rr(r
s
r
c@�$eZdZedd��Zedd��ZdS)�_MD5cC�t|tj�Sr:)rTr	r2�r�rVr�r�r'r'r(r�#�z
_MD5.checksumcCrr:rrr'r'r(r(rz_MD5.checksum_lenN�rrrr�r�rr'r'r'r(r"�

rc@r)�_SHA1cCrr:)rTr	r5rr'r'r(r�.rz_SHA1.checksumcCrr:)r	r5rrr'r'r(r3rz_SHA1.checksum_lenNrr'r'r'r(r-rrc@r)�_CRC32cCst|d�d@}td|�S)Nl��z<I)rrrr'r'r(r�9s
z_CRC32.checksumcCsdS)N�r'rr'r'r(r?sz_CRC32.checksum_lenNrr'r'r'r(r8s

rcC�|tvr
td|��t|S)NzInvalid enctype %d)�_enctype_tabler�)r�r'r'r(�_get_enctype_profileW�r cCr)NzInvalid cksumtype %d)�_checksum_tabler�)�	cksumtyper'r'r(�_get_checksum_profile]r!r$c@seZdZdd�ZdS)r�cCs.t|�}t|�|jkrtd��||_||_dS)NzWrong key length)r r;r�r�r�r�)�selfr�r��er'r'r(�__init__ds

zKey.__init__N)rrrr'r'r'r'r(r�csr�cCst|�}|jSr:)r r�)r�r&r'r'r(r�lsr�cCs(t|�}t|�|jkrtd��|�|�S)NzWrong crypto seed length)r r;r�r�r�)r�r�r&r'r'r(r�qs
r�cC�t|�}|�|||�Sr:)r r�)r�rQr�r�r&r'r'r(r�x�r�cCst|j�}|�||||�Sr:)r r�r�)rVr�r�r�r&r'r'r(r�}s
r�cCst|j�}|�|||�Sr:)r r�r�)rVr�r�r&r'r'r(r��s
r�cCst|j�}|�||�Sr:)r r�r�)rVrQr&r'r'r(r��s
r�cCr(r:)r$r�)r#rVr�r��cr'r'r(�
make_checksum�r)r+cCst|�}|�||||�dSr:)r$r�)r#rVr�r�r�r*r'r'r(�verify_checksum�sr,cCst|�}|��Sr:)r$r)r#r*r'r'r(r�srcCsLd}d}t|�|kr |t|t|g�|�7}|d7}t|�|ks
|d|�S)Nrqr)r;r�r<)rV�pepper�ln�outr�r'r'r(�prfplus�s�r0cCs:|dur|j}t|�}|�tt|||j�t|||j���Sr:)r�r r�rIr0r�)�key1�key2�pepper1�pepper2r�r&r'r'r(�cf2�s�r5cCs
t�|�Sr:)r<�fromhex)�hexstrr'r'r(�h�s
r8c@sxeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zd,d-�Zd.d/�Zd0d1�Zd2d3�Zd4d5�Zd6d7�Zd8d9�Zd:d;�Z d<d=�Z!d>d?�Z"d@dA�Z#dBdC�Z$dDdE�Z%dFdG�Z&dHdI�Z'dJdK�Z(dLdM�Z)dNdO�Z*dPdQ�Z+dRdS�Z,dTdU�Z-dVdW�Z.dXdY�Z/dZd[�Z0d\S)]�
KcrytoTestzkcrypto Test case.cC�Ztd�}td�}d}d}td�}ttj|�}|�t||||�|�|�t|||�|�dS)N� 9062430C8CDA3388922E6D6A509F5B7A� 94B491F481485B9A0678CD3C4EA386ADrs	9 bytesss�J68FB9679601F45C78857B2BF820FD6E53ECA8D42FD4B1D7024A09205ABB7CD2EC26C355D2F)r8r�rr$�assertEqualr�r��r%�kb�confr��plain�ctxtr�r'r'r(�test_aes128_crypr��zKcrytoTest.test_aes128_cryprcCr:)N�@F1C795E9248A09338D82C3F8D5B567040B0110736845041347235B1404231398� E45CA518B42E266AD98E165E706FFB60r�30 bytes bytes bytes bytes byt�tD1137A4D634CFECE924DBC3BF6790648BD5CFF7DE0E7B99460211D0DAEF3D79A295C688858F3B34B9CBD6EEBAE81DAF6B734D4D498B6714F1C1D)r8r�rr%r>r�r�r?r'r'r(�test_aes256_crypt�szKcrytoTest.test_aes256_cryptcC�:td�}d}d}td�}ttj|�}ttj||||�dS)Nr;rs%eight nine ten eleven twelve thirteen�01A4B088D45628F6946614E3)r8r�rr$r,r)r6�r%r@r�rBr�r�r'r'r(�test_aes128_checksum��zKcrytoTest.test_aes128_checksumcCrK)N�@B1AE4CD8462AFF1677053CC9279AAC30B796FB81CE21474DD3DDBCFEA4EC76D7rsfourteen�E08739E3279E2903EC8E3836)r8r�rr%r,r)r7rMr'r'r(�test_aes256_checksum�szKcrytoTest.test_aes256_checksumcC�:d}d}td�}td�}ttj|||�}|�|j|�dS)N�password�ATHENA.MIT.EDUraeburn�00000002� C651BF29E2300AC27FA469D693BDDA13)r8r�rr$r>r��r%rQr�r�r@r�r'r'r(�test_aes128_string_to_key�sz$KcrytoTest.test_aes128_string_to_keycCrS)Ns@XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXspass phrase equals block size�000004B0�@89ADEE3608DB8BC71F1BFBFE459486B05618B70CBAE22092534E56C553BA4B34)r8r�rr%r>r�rXr'r'r(�test_aes256_string_to_key�sz$KcrytoTest.test_aes256_string_to_keycC�,td�}ttjdd�}|�t|d�|�dS)N� 77B39A37A868920F2A51F9DD150C5717�key1sa)r8r�rr$r>r��r%r@r�r'r'r(�test_aes128_prf��zKcrytoTest.test_aes128_prfcCr])N� 0D674DD0F9A6806525A4D92E828BD15A�key2sb)r8r�rr%r>r�r`r'r'r(�test_aes256_prfrbzKcrytoTest.test_aes256_prfcC�Dtd�}ttjdd�}ttjdd�}t||dd�}|�|j|�dS)N� 97DF97E4B798B29EB31ED7280287A92Ar_rd�a�b)r8r�rr$r5r>r��r%r@r�r�r�r'r'r(�test_aes128_cf2�
zKcrytoTest.test_aes128_cf2cCrf)N�@4D6CA4E629785C1F01BAF55E2E548566B9617AE3A96868C337CB93B5E72B1C7Br_rdrhri)r8r�rr%r5r>r�rjr'r'r(�test_aes256_cf2s
zKcrytoTest.test_aes256_cf2cCs`td�}td�}d}d}td�}ttj|�}|�t||||�|�|�t|||�t|d��dS)N�00DD52094E0F41CECCB5BE510A764B35176E3981332F1E598�94690A17B2DA3C9Brs
13 bytes byte�X839A17081ECBAFBCDC91B88C6955DD3C4514023CF177B77BF0D0177A16F705E849CB7781D76A316B193F8D30r+)r8r�rr#r>r�r�r@r?r'r'r(�test_des3_cryptszKcrytoTest.test_des3_cryptcCs0d}d}td�}ttj||�}|�|j|�dS)NrTrU�0850BB51358548CD05E86768C313E3BFEF7511937DCF72C3E)r8r�rr#r>r�)r%rQr�r@r�r'r'r(�test_des3_string_to_key#s
z"KcrytoTest.test_des3_string_to_keycCrK)N�07A25DF8992296DCEDA0E135BC4046E2375B3C14C98FBC162rs	six seven�(0EEFC9C3E049AABC1BA5C401677D9AB699082BB4)r8r�rr#r,r)r4rMr'r'r(�test_des3_checksum+rOzKcrytoTest.test_des3_checksumcCrf)N�0E58F9EB643862C13AD38E529313462A7F73E62834FE54A01r_rdrhri)r8r�rr#r5r>r�rjr'r'r(�
test_des3_cf24rlzKcrytoTest.test_des3_cf2cCr:)N� 68F263DB3FCE15D031C9EAB02D67107A�37245E73A45FBF72rrH�l95F9047C3AD75891C2E9B04B16566DC8B6EB9CE4231AFB2542EF87A7B5A0F260A99F0460508DE0CECC632D07C354124E46C5D2234EB8)r8r�rr&r>r�r�r?r'r'r(�test_rc4_crypt<rEzKcrytoTest.test_rc4_cryptcCs,d}td�}ttj|d�}|�|j|�dS)Nsfoo� AC8E657F83DF82BEEA5D43BDAF7800CC)r8r�rr&r>r�)r%rQr@r�r'r'r(�test_rc4_string_to_keyHsz!KcrytoTest.test_rc4_string_to_keycCrK)N� F7D3A155AF5E238A0B7A871A96BA2AB2��"seventeen eighteen nineteen twenty� EB38CC97E2230F59DA4117DC5859D7EC)r8r�rr&r,r)r8rMr'r'r(�test_rc4_checksumOrOzKcrytoTest.test_rc4_checksumcCrf)N� 24D7F6B6BAE4E5C00D2082C5EBAB3672r_rdrhri)r8r�rr&r5r>r�rjr'r'r(�test_rc4_cf2XrlzKcrytoTest.test_rc4_cf2cC�6d}d}t|||�}d}td�}ttj||||�dS)Nspwdsbytesr�� 9d9588cdef3a8cefc9d2c208d978f60c)r�r8r,r)r2�r%�etype�usage�pwr�rVrBr�r'r'r(�_test_md5_unkeyed_checksum`�z%KcrytoTest._test_md5_unkeyed_checksumcC�|�tjd�S�N�(�r�rr#�r%r'r'r(�'test_md5_unkeyed_checksum_des3_usage_40i�z2KcrytoTest.test_md5_unkeyed_checksum_des3_usage_40cCr��N�2r�r�r'r'r(�'test_md5_unkeyed_checksum_des3_usage_50lr�z2KcrytoTest.test_md5_unkeyed_checksum_des3_usage_50cCr�r��r�rr&r�r'r'r(�&test_md5_unkeyed_checksum_rc4_usage_40or�z1KcrytoTest.test_md5_unkeyed_checksum_rc4_usage_40cCr�r�r�r�r'r'r(�&test_md5_unkeyed_checksum_rc4_usage_50rr�z1KcrytoTest.test_md5_unkeyed_checksum_rc4_usage_50cCr�r��r�rr$r�r'r'r(�)test_md5_unkeyed_checksum_aes128_usage_40ur�z4KcrytoTest.test_md5_unkeyed_checksum_aes128_usage_40cCr�r�r�r�r'r'r(�)test_md5_unkeyed_checksum_aes128_usage_50xr�z4KcrytoTest.test_md5_unkeyed_checksum_aes128_usage_50cCr�r��r�rr%r�r'r'r(�)test_md5_unkeyed_checksum_aes256_usage_40{r�z4KcrytoTest.test_md5_unkeyed_checksum_aes256_usage_40cCr�r�r�r�r'r'r(�)test_md5_unkeyed_checksum_aes256_usage_50~r�z4KcrytoTest.test_md5_unkeyed_checksum_aes256_usage_50cCr�)NrT�salts"twenty nineteen eighteen seventeen�(381c870d8875d1913555de19af5c885fd27b7da9)r�r8r,r)r5r�r'r'r(�_test_sha1_unkeyed_checksum�r�z&KcrytoTest._test_sha1_unkeyed_checksumcCr�r��r�rr#r�r'r'r(�(test_sha1_unkeyed_checksum_des3_usage_40�r�z3KcrytoTest.test_sha1_unkeyed_checksum_des3_usage_40cCr�r�r�r�r'r'r(�(test_sha1_unkeyed_checksum_des3_usage_50�r�z3KcrytoTest.test_sha1_unkeyed_checksum_des3_usage_50cCr�r��r�rr&r�r'r'r(�'test_sha1_unkeyed_checksum_rc4_usage_40�r�z2KcrytoTest.test_sha1_unkeyed_checksum_rc4_usage_40cCr�r�r�r�r'r'r(�'test_sha1_unkeyed_checksum_rc4_usage_50�r�z2KcrytoTest.test_sha1_unkeyed_checksum_rc4_usage_50cCr�r��r�rr$r�r'r'r(�*test_sha1_unkeyed_checksum_aes128_usage_40�r�z5KcrytoTest.test_sha1_unkeyed_checksum_aes128_usage_40cCr�r�r�r�r'r'r(�*test_sha1_unkeyed_checksum_aes128_usage_50�r�z5KcrytoTest.test_sha1_unkeyed_checksum_aes128_usage_50cCr�r��r�rr%r�r'r'r(�*test_sha1_unkeyed_checksum_aes256_usage_40�r�z5KcrytoTest.test_sha1_unkeyed_checksum_aes256_usage_40cCr�r�r�r�r'r'r(�*test_sha1_unkeyed_checksum_aes256_usage_50�r�z5KcrytoTest.test_sha1_unkeyed_checksum_aes256_usage_50cCr�)NrTr�s$africa america asia australia europe�ce595a53)r�r8r,r)r/r�r'r'r(�_test_crc32_unkeyed_checksum�r�z'KcrytoTest._test_crc32_unkeyed_checksumcCr�r��r�rr#r�r'r'r(�)test_crc32_unkeyed_checksum_des3_usage_40�r�z4KcrytoTest.test_crc32_unkeyed_checksum_des3_usage_40cCr�r�r�r�r'r'r(�)test_crc32_unkeyed_checksum_des3_usage_50�r�z4KcrytoTest.test_crc32_unkeyed_checksum_des3_usage_50cCr�r��r�rr&r�r'r'r(�(test_crc32_unkeyed_checksum_rc4_usage_40�r�z3KcrytoTest.test_crc32_unkeyed_checksum_rc4_usage_40cCr�r�r�r�r'r'r(�(test_crc32_unkeyed_checksum_rc4_usage_50�r�z3KcrytoTest.test_crc32_unkeyed_checksum_rc4_usage_50cCr�r��r�rr$r�r'r'r(�+test_crc32_unkeyed_checksum_aes128_usage_40�r�z6KcrytoTest.test_crc32_unkeyed_checksum_aes128_usage_40cCr�r�r�r�r'r'r(�+test_crc32_unkeyed_checksum_aes128_usage_50�r�z6KcrytoTest.test_crc32_unkeyed_checksum_aes128_usage_50cCr�r��r�rr%r�r'r'r(�+test_crc32_unkeyed_checksum_aes256_usage_40�r�z6KcrytoTest.test_crc32_unkeyed_checksum_aes256_usage_40cCr�r�r�r�r'r'r(�+test_crc32_unkeyed_checksum_aes256_usage_50�r�z6KcrytoTest.test_crc32_unkeyed_checksum_aes256_usage_50N)1rrr�__doc__rDrJrNrRrYr\rarerkrnrrrtrwryr}rr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r'r'r'r(r9�s^
	
	
						r9�__main__r:)a�sys�os�path�insert�environ�mathr�	functoolsr�structrr�binasciir�cryptography.hazmat.primitivesr	r
�&cryptography.hazmat.primitives.ciphersrr�r�+cryptography.hazmat.primitives.ciphers.baser
�cryptography.hazmat.backendsr�)cryptography.hazmat.primitives.kdf.pbkdf2r�samba.testsr�samba.credentialsr�sambarr��samba.commonrr�objectrr)r�r9r@rIrMrTrXrzr|r~r�r�r�r�r�r�r�r�r	rrr
rrrr#r$r%r&rr4r6r7r8r2r5r/r"r r$r�r�r�r�r�r�r�r+r,rr0r5r8r9r�unittest�mainr'r'r'r(�<module>s�,



!?:OA

�	�	





�