ƺhMzddlZddlZddlmZddlmZddlmZddlm Z m Z ddl m Z ddl mZddlmZd ZGd d ejZGd d ejZdZGddejZGddejZGddejZifdZedkrdZejddSdS)N unhexlify)list_test_cases)load_test_vectors_wycheproof)tobytesbchr)AES)SHAKE128)strxorcltjt||S)N)data)r newrread)taglengths /builddir/build/BUILD/imunify360-venv-2.5.2/opt/imunify360/venv/lib64/python3.11/site-packages/Crypto/SelfTest/Cipher/test_SIV.pyget_tag_randomr-s) )TY 0 0 0 0 0rc8tj|jtj|j}|t |jdtj|jtj|j}|t |jdddS)Nr!ztest1234567890-*sxxxx) r rrr$r%r:r;encryptr'rGs rtest_data_must_be_bytesz SivTests.test_data_must_be_bytes{ss|4=III )V^5HIIIs|4=III )V%>-w 8 8 8 8 8rctj|jtj|j}||j\}}|t|ddS)Nr!) r rrr$r%r&r r(len)r)r+_r.s r test_mac_lenzSivTests.test_mac_lensYs|4=III**49553 S2&&&&&rcTddlm}tj|jtj|j}||j\}}||d}tj|jtj|j}| t|j ||dS)Nr)strxor_cr!r?) Crypto.Util.strxorr^r rrr$r%r&r r:rAr')r)r^r+r-r. invalid_macs rtest_invalid_maczSivTests.test_invalid_macs//////s|4=III++DI66ChsD)) s|4=III *f&?% ' ' ' ' 'rcntj|jtj|j}|}||t|tj|jtj|j}| |dSr2) r rrr$r% hexdigestr(digestr hexverify)r)r+mac_hexs r test_hex_maczSivTests.test_hex_macss|4=III""$$ )G*<*<===s|4=III!!!!!rctt|j}t|j}t|j}t|j}t j|jtj|j}||j||j\}}t j|tj|}d|dd<d|dd<||d|dd<||\} } | || | || | |j |j t|j}t|j}t|j}t|} t|} t j|tj|} d|dd<d|dd<| |d|dd<| | | }| |j|dSNr!s) bytearrayrr%r r rr$updater&r(r"r'r)r*r"r headercipher1r-rcipher2ct_testtag_testct_batag_bacipher3pt_tests rtest_bytearrayzSivTests.test_bytearrays %%$-((##49%%'$,, $ /// ty!!!,,TY77C'#, %'''"BQB#bqb v$rr #66t<< W%%% h'''  666 %%$-((49%%" 3'#, %'''"BQB#bqb v$rr ,,UF;; G,,,,,rc^tt|j}tt|j}tt|j}tt|j}t j|jt j|j}||j| |j\}}t j|t j|}d|dd<d|dd<||d|dd<| |\} } | || | || | |j |j tt|j}tt|j}tt|j}tt|} tt|} t j|t j|} d|dd<d|dd<| |d|dd<| | | }| |j|dSri) memoryviewrkrr%r r rr$rlr&r(r"r'rms rtest_memoryviewzSivTests.test_memoryviewsg4<00119T]3344)DI..//Idi0011'$,, $ /// ty!!!,,TY77C'#, %'''"BQB#bqb v$rr "55d;; W%%% h'''  6664<00119T]3344Idi00119R==))IcNN++'#, %'''"BQB#bqb v$rr ,,UF;; G,,,,,rcd}tj|jtj|j}||\}}t d}tj|jtj|j}|||\}}|||||d|||tj|jtj|j}||||}|||||ddSNs55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555r!routput) r rrr$r%r&rkr(r')r)r,r+r-rr~restag_outs rtest_output_paramzSivTests.test_output_params' s|4=III++B//C3s|4=III00F0CC W V$$$ d### g&&&s|4=III''C'?? V$$$ d#####rc*d}tj|jtj|j}||\}}t td}tj|jtj|j}||||||tj|jtj|j}| ||||||dSr|) r rrr$r%r&ryrkr(r')r)r,r+r-rr~s rtest_output_param_memoryviewz%SivTests.test_output_param_memoryviews s|4=III++B//CIcNN++s|4=III!!"V!444 V$$$s|4=III!!"c&!999 V$$$$$rc>d}d|z}tj|jtj|j}||\}}tj|jtj|j}|t|j|d|ztj|jtj|j}|t|j||d|zt|dz }tj|jtj|j}|t|j||tj|jtj|j}|t|j|||dS)Nr5r!0r}r?) r rrr$r%r&r:r;r'rkrA)r)LEN_PTr,r+r-rshorter_outputs rtest_output_param_negzSivTests.test_output_param_negs[ F]s|4=III++B//Cs|4=III )V%>4RX=YYYs|4=III )V%>CPTW]P]^^^"6A:..s|4=III *f&?N[[[s|4=III *f&?SQ_`````rN)__name__ __module__ __qualname__rrrrr%r r0r7r=rDrHrLrQrTrWr\rargrwrzrrrrrrr1srnY++GnY++GnY++G~k2..H >&# & &D&&& 1 1 1111///<<<PPP ! ! !000888''' ' ' '"""+-+-+-Z+-+-+-Z$$$$ % % %aaaaarrceZdZeddZeddZeddZdZdZd Z d Z d Z d Z d Z dZdZdS) SivFSMTestsrrr%rr rctj|jtj|j}|t |jddSNr!sxxx)r rrr$r%r:r;rVrGs rtest_invalid_init_encryptz%SivFSMTests.test_invalid_init_encrypt0Es|#}... )V^V<<<<DDDDDrc\tj|jtj|j}||j\}}tj|jtj|j}||||t|j||dSr2) r rrr$r%r&r r'r:r;rs r(test_invalid_multiple_decrypt_and_verifyz4SivFSMTests.test_invalid_multiple_decrypt_and_verifyvss|4=III++DI66Cs|4=III!!"c*** )V%>CHHHHHrN)rrrrrr%r rrrrrrrrrrrrrr*snY++G~j"--H >&# & &D=== ===     % % % ( ( (EEE IIIIIrrcd|ddDg}|d|ddDz }|drt|d}nd}||gz }|S)Nc,g|]}t|Srr.0rCs r ztransform..s666y||666rr-c,g|]}t|Srrrs rrztransform..s... ! ...rr?r)splitr)tvnew_tvr"s r transformrs~66RU[[%5%5666 7F ..b1g....F !u"Q%   iF Mrc8eZdZdZddgZdeDZdZdS) TestVectorsz6Class exercising the SIV test vectors found in RFC5297)0101112131415161718191a1b1c1d1e1f2021222324252627112233445566778899aabbccddee40c02b9690c4dc04daef7f6afe5c 85632d07c6e8f37f950acd320a2ecc93@fffefdfcfbfaf9f8f7f6f5f4f3f2f1f0f0f1f2f3f4f5f6f7f8f9fafbfcfdfeffN)ze00112233445566778899aabbccddeeffdeaddadadeaddadaffeeddccbbaa99887766554433221100-102030405060708090a0^7468697320697320736f6d6520706c61696e7465787420746f20656e6372797074207573696e67205349562d414553^cb900f2fddbe404326601965c889bf17dba77ceb094fa663b7a3f748ba8af829ea64ad544a272e9c485b62a3fd5c0d 7bdb6e3b432667eb06f4d14bff2fbd0f@7f7e7d7c7b7a79787776757473727170404142434445464748494a4b4c4d4e4f 09f911029d74e35bd84156c5635688c0c,g|]}t|Sr)r)rrs rrzTestVectors.s???rYr]]???rc|jD]\}}}}}}tj|tj|}|D]}||||\} } ||| ||| tj|tj|}|D]}|||||} ||| dSr2) test_vectorsr rr$rlr&r(r') r) assoc_datar,r-r.r*r"r+rCr5mac2r/s rrunTestzTestVectors.runTests373D & & /JBS%WS#,e<<r'sH&y{{33rsuite) defaultTest)jsonrbinasciirCrypto.SelfTest.st_commonrCrypto.SelfTest.loaderrCrypto.Util.py3compatrr Crypto.Cipherr Crypto.Hashr r_r rrrrrrrrrrrmainrrrr s> 555555??????//////// %%%%%%888vavavavavax vavavarRIRIRIRIRI(#RIRIRIj6&6&6&6&6&(#6&6&6&r("("("("("H-("("("V)")")")")"X.)")")"X     z 3 3EHMg&&&&&&r