@vzm> d dl Z d dlZd dlZd dlmZmZ d dlmZmZm Z d dl mZ d dlm Z d dlmZ G d dej Z G d d ej Z G d dej Z G d dej Z G d dej Z G d dej Zi fdZedk rd dlZd Z ej d dS dS ) N)hexlify unhexlify)btobytesbchr)strxor_c)list_test_cases)ChaCha20c J e Zd Zd Zd Zd Zd Zd Zd Zd Z d Z d Zd ZdS )ChaCha20Testc t j t d dz d }| |j d t j t d dz d }| |j d d S )N0 s 00000000keynonces 000000000000)r newr assertEqualr )selfciphers /builddir/build/BUILD/imunify360-venv-2.6.2/opt/imunify360/venv/lib64/python3.11/site-packages/Crypto/SelfTest/Cipher/test_ChaCha20.pytest_new_positivezChaCha20Test.test_new_positive- st !C&&)6:::x000!C&&)7;;;y11111 c t j }| t | | t |t d | t |t d dz t d | t |t d t d dz d S )Nr )r )r r r )r r assertRaises TypeErrorr ValueError)r r s r test_new_negativezChaCha20Test.test_new_negative3 s l)S))))S#777*c3qvvFFF*c3QsVVBYGGGGGr c * t j t d dz }t j t d dz }| t |j d | |j |j d S )N r )r r )r r r r lenr assertNotEqual)r cipher1cipher2s r test_default_noncezChaCha20Test.test_default_nonce: sz ,477R<000,477R<000W]++Q///GM7=99999r c d}d}t j || }| ||j d}t j || }| ||j d S )N AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAs PPPPPPPPr s QQQQQQQQQQQQr r r r )r r nonce1r$ nonce2r% s r test_noncezChaCha20Test.test_nonce@ so ,3f555///,3f555/////r c t j t d dz t d dz }| t d | t |j t d t j t d dz t d dz }| t d | t |j t d dS ) zFVerify that a cipher cannot be used for both decrypting and encrypting5r 6r r 89N)r r r encryptr r decrypt)r c1c2s r test_eiter_encrypt_or_decryptz*ChaCha20Test.test_eiter_encrypt_or_decryptK s \affrk3! < < < 1S66)RZ3888 \affrk3! < < < 1S66)RZ388888r c t d dz }t j t d dz t d dz }t j t d dz t d dz }| | }| | | | | | t d t d | | t d t d d S ) NAi r. r r/ r r )r r r r2 r r3 )r ptr4 r5 cts r test_round_tripzChaCha20Test.test_round_tripV s sVVd] \affrk3! < < < \affrk3! < < < ZZ^^B,,,AbEE**AbEE222AbEE**AbEE22222r c t ddl m} d}t | }t d }t | |k r=|| | z }t | |k =t j t d dz t d dz }| | }t j t d dz t d dz }t j t d dz t d dz }d} |D ]} | | || | | z || | | z | | || | | z || | | z | | z } d S )zCVerify that an arbitrary number of bytes can be encrypted/decryptedr )SHA1)r! r9 7r tr r N)Crypto.Hashr> sumr r" r digestr r2 r r3 )r r> segmentstotalr: r$ r; r% cipher3idxsegments r test_streamingzChaCha20Test.test_streaming` s $$$$$$+H rUU"ggoo$((2,,%%'''B "ggoo ,1S66B;affqjAAA __R ,1S66B;affqjAAA,1S66B;affqjAAA GW__RCK-@AA2c#g+oCVWWWW__RCK-@AA2c#g+oCVWWW7NCC r c t j t d dz t d dz }d}t d dz }| t d |z | | }t j t d dz t d dz }| | | | }| || d S ) Nr1 r er r i 1@ r )r r r r2 seekr )r r$ offsetr: ct1r% ct2s r test_seekzChaCha20Test.test_seekv s ,1S66B;affqjAAA sVVb[#(((oob!!,1S66B;affqjAAAVoob!!c"""""r c t d t d z t d dz z }t d dz }t j || }| d t t d }| t d t | z }| || d S )Nr r r ڀ72d54dfbf12ec44b362692df94137f328fea8da73990265ec1bbbea1ae9af0ca13b25aa26cb4a648cb9b9d1be65b2c0924a66c54d545ec1b7374f4872e99f096) r r r rT r r r2 r" r )r r r r expected_key_streamr; s r test_seek_tvzChaCha20Test.test_seek_tv s 1ggS !DGGbL0Q!#U333F' /) ) ^^DGGc*=&>&>> ? ?,b11111r c r g d}|D ]}t |d }t |d }|d dz }t |d }t |d }t j || }|dk r| | | | } | |k sJ d S ) N))@0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000r ڀ00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ڀ76b8e0ada0f13d90405d6ae55386bd28bdd219b8a08ded1aa836efcc8b770dc7da41597c5157488d7724e03fb8d84a376a43b8f41518a11cc387b669b2ee6586)@0000000000000000000000000000000000000000000000000000000000000001000000000000000000000002r! 416e79207375626d697373696f6e20746f20746865204945544620696e74656e6465642062792074686520436f6e7472696275746f7220666f72207075626c69636174696f6e20617320616c6c206f722070617274206f6620616e204945544620496e7465726e65742d4472616674206f722052464320616e6420616e792073746174656d656e74206d6164652077697468696e2074686520636f6e74657874206f6620616e204945544620616374697669747920697320636f6e7369646572656420616e20224945544620436f6e747269627574696f6e222e20537563682073746174656d656e747320696e636c756465206f72616c2073746174656d656e747320696e20494554462073657373696f6e732c2061732077656c6c206173207772697474656e20616e6420656c656374726f6e696320636f6d6d756e69636174696f6e73206d61646520617420616e792074696d65206f7220706c6163652c207768696368206172652061646472657373656420746f a3fbf07df3fa2fde4f376ca23e82737041605d9f4f4f57bd8cff2c1d4b7955ec2a97948bd3722915c8f3d337f7d370050e9e96d647b7c39f56e031ca5eb6250d4042e02785ececfa4b4bb5e8ead0440e20b6e8db09d881a7c6132f420e52795042bdfa7773d8a9051447b3291ce1411c680465552aa6c405b7764d5e87bea85ad00f8449ed8f72d0d662ab052691ca66424bc86d2df80ea41f43abf937d3259dc4b2d0dfb48a6c9139ddd7f76966e928e635553ba76c5c879d7b35d49eb2e62b0871cdac638939e25e8a1e0ef9d5280fa8ca328b351c3c765989cbcf3daa8b6ccc3aaf9f3979c92b3720fc88dc95ed84a1be059c6499b9fda236e7e818b04b0bc39c1e876b193bfe5569753f88128cc08aaa9b63d1a16f80ef2554d7189c411f5869ca52c5b83fa36ff216b9c1d30062bebcfd2dc5bce0911934fda79a86f6e698ced759c3ff9b6477338f3da4f9cd8514ea9982ccafb341b2384dd902f3d1ab7ac61dd29c6f21ba5b862f3730e37cfdc4fd806c22f221)@1c9240a5eb55d38af333888604f6b5f0473917c1402b80099dca5cbc207075c0rf * 2754776173206272696c6c69672c20616e642074686520736c6974687920746f7665730a446964206779726520616e642067696d626c6520696e2074686520776162653a0a416c6c206d696d737920776572652074686520626f726f676f7665732c0a416e6420746865206d6f6d65207261746873206f757467726162652e62e6347f95ed87a45ffae7426f27a1df5fb69110044c0d73118effa95b01e5cf166d3df2d721caf9b21e5fb14c616871fd84c54f9d65b283196c7fe4f60553ebf39c6402c42234e32a356b3e764312a61a5532055716ead6962568f87d3f3f7704c6a8d1bcd1bf4d50d6154b6da731b187b58dfd728afa36757a797ac188d1r r! rS r? r )r r r rT r2 ) r tvstvr r rU r: ct_expectr r; s r test_rfc7539zChaCha20Test.test_rfc7539 s Y Y Y v $ $BBqE""Cbe$$EURZF2a5!!B!"Q%((I\c777F{{F#####B????? $ $r N) __name__ __module____qualname__r r r&