ƺhpNddlZddlmZddlmZddlmZddlmZm Z ddl m Z m Z ddl mZddlmZd ZGd d ejZGd d ejZGddejZGddejZGddejZddl mZm Z mZmZmZedeejzeeje jD]%Zedeeze e&ejD]%Zedeezee&ejD]%Zedeezee&ejD]%Zedeezee&ifdZ e!dkrdZ"ej#ddSdS)N unhexlify)list_test_cases)load_test_vectors_wycheproof)tobytesbchr)AESDES3)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_EAX.pyget_tag_randomr+s) zBEaxTests.test_message_chunks..break_up..s3###qD1\>)*###rr)r@r1)rrvs``rbreak_upz.EaxTests.test_message_chunks..break_upsJ#####E!SYY 5"5"### #r) r=r^rM r(Pr>r) rr rrr"r#updater_r%r&verifyr$rk) r( auth_datar!r) ciphertextref_macrxrvchunkr,ct2s rtest_message_chunkszEaxTests.test_message_chunkss##7== ";44 s|4=III i   $77 BB G # # # @ # #LWT\3>## W%%% h'''  6664<((T]++dm,, " 3 '&, (***%rr &! y!!!' "1" //%((#bqb v $-00000rctt|j}tt|j}tt|j}tt|j}t j|jt j|j}||j| |j}| }t j|t j|}d|dd<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<| | }d| dd<| | | ||jdSr) memoryviewrrr#rr rr"r~r$rkr&r r%r)r(key_mvnonce_mv header_mvdata_mvrr+rrrrct_mvtag_mvrrs rtest_memoryviewzEaxTests.test_memoryviewsIdl3344i 6677y7788 Yt}5566'$,, $ /// t}%%% __T] + +nn'&, (***%rr &! y!!!' "1" //'**% >>## W%%% h'''  666Idl3344i 6677y7788 9R==))IcNN++ '&, (***%rr &! y!!!' "1" //%((#bqb v $-00000rctd}tj|jtj|j}||}|}td}tj|jtj|j}|||}|||||dtj|jtj|j}| ||}|||||dtj|jtj|j}| ||\}}|||||d|||tj|jtj|j}| |||}|||||ddSNs55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555rr>output) r rrr"r#r$rkrr&r%r_rf)r(r*r)r+rrrestag_outs rtest_output_paramzEaxTests.test_output_paramLs s|4=III ^^B  mmoo3s|4=IIInnRn// V$$$ d###s|4=IIInnRn// V$$$ d###s|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$rrr&r%)r(r*r)r+rs rtest_output_param_memoryviewz%EaxTests.test_output_param_memoryviewis s|4=III ^^B  IcNN++s|4=IIIr&))) V$$$s|4=IIIr&))) V$$$$$rc4d}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)Nr5r0rr=) r rrr"r#r$r8r9r%rr?)r(LEN_PTr*r)r+shorter_outputs rtest_output_param_negzEaxTests.test_output_param_negxsH F]s|4=III ^^B  s|4=III )V^Rv NNNs|4=III )V^Rv NNN"6A:..s|4=III *fnbPPPs|4=III *fnbPPPPPrN)__name__ __module__ __qualname__rrrr#rr-r/r5r;rBrGrIrKrPrVrXrZrbrhrnrrrrrrrsrrrr/snY++GnY++G~k2..H~j"--H"""""" < < <111$$$<<<===,,, ! ! !*** :::JJJ'''& ' ' '"""'7'7'7R111111f111111f$$$: % % %QQQQQrrceZdZeddZeddZeddZdZdZdZ d Z d Z d Z d Z d ZdZdZdZdS) EaxFSMTestsrrrrrcbtj|jtj|j}||j}|}tj|jtj|j}||| |dSrD) r rrr"r#r$rrkr%rr(r)r+ras r-test_valid_init_encrypt_decrypt_digest_verifyz9EaxFSMTests.test_valid_init_encrypt_decrypt_digest_verifyss|#}... ^^DM * *mmoos|#}...r crcltj|jtj|j}||j|}tj|jtj|j}||j||dSrD) r rrr"r#r~rrkrr(r)ras r$test_valid_init_update_digest_verifyz0EaxFSMTests.test_valid_init_update_digest_verifyss|#}... dm$$$mmoos|#}... dm$$$ crctj|jtj|j}||j||j}|}tj|jtj|j}||j| || |dSrD) r rrr"r#r~rr$rkr%rrs rtest_valid_full_pathz EaxFSMTests.test_valid_full_pathss|#}... dm$$$ ^^DM * *mmoos|#}... dm$$$r crctj|jtj|j}|dSrD)r rrr"r#rkrFs rtest_valid_init_digestz"EaxFSMTests.test_valid_init_digests/s|4=III rctj|jtj|j}|}tj|jtj|j}||dSrD)r rrr"r#rkrrs rtest_valid_init_verifyz"EaxFSMTests.test_valid_init_verifys_s|4=IIImmoos|4=III crcdD]}dd|j|jdzfD]}|d}nt|}tj|jtj|j}|||t||}||j||j||j||jdS)NrRs3333r) rr1r rrr"r#r~rS)r( method_namer assoc_lenr)methods r&test_valid_multiple_encrypt_or_decryptz2EaxFSMTests.test_valid_multiple_encrypt_or_decrypts/ & &K"FDM"md24 & & $ $II #IIs|'+}666(MM),,, 55t}%%%t}%%%t}%%%t}%%%% & & &rctj|jtj|j}||j|}tdD]*}| ||+tj|jtj|j}||jtdD]}| |dS)Nr) r rrr"r#r~rrkr@r&r)r(r) first_macrAs r$test_valid_multiple_digest_or_verifyz0EaxFSMTests.test_valid_multiple_digest_or_verifyss|4=III dm$$$MMOO q 9 9A   Y  8 8 8 8s|4=III dm$$$q % %A MM) $ $ $ $ % %rctj|jtj|j}||j||j\}}tj|jtj|j}||j|||}| |j|dSrD) r rrr"r#r~rr_rfr&)r(r)r+rar*s r0test_valid_encrypt_and_digest_decrypt_and_verifyz.vs...aYq\\...rrs)rttvs rrwzTestVectorsPaper.vs'JJJ2..2...JJJrc |jD]\}}}}}}tj|tj|t |}||||\}} |||||| tj|tj|t |}|||||} ||| dS)Nr\) test_vectorsr rr"r1r~r_r&rf) r( assoc_datar*r+rakeyr r)rmac2r,s rrunTestzTestVectorsPaper.runTestxs373D & & /JBS%WS#,s3xxHHHF MM* % % %11"55IC   R % % %   S$ ' ' 'WS#,s3xxHHHF MM* % % %++B44C   R % % % % & &rN)rrr__doc__test_vectors_hexrrrsrrrr!sZ<<OOObKJ9IJJJL & & & & &rrc>eZdZdZdZdZdZdZdZdZ dZ d S) TestVectorsWycheproofc`tj|||_d|_dS)NNone)unittestTestCase__init___wycheproof_warnings_id)r(wycheproof_warningss rr$zTestVectorsWycheproof.__init__s,""4((($7!rc@d}tdddd|i|_dS)Nc|ddzS)NtagSizers)groups r filter_tagz/TestVectorsWycheproof.setUp..filter_tags#q( (r)Cipher wycheproofzaes_eax_test.jsonzWycheproof EAXtag_size) group_tag)rr)r(r-s rsetUpzTestVectorsWycheproof.setUpsA ) ) )//G/B/?:Dj9QSSSrc|jSN)r&r:s rshortDescriptionz&TestVectorsWycheproof.shortDescriptions xrc~|jr3|jr.ddl}|d|jd|jddSdSdS)NrzWycheproof warning: z ())warningr%warningswarnr&comment)r(rr9s rr:zTestVectorsWycheproof.warnsd : R$3 R OOO MMM4888RZZZP Q Q Q Q Q R R R Rrc@dt|jz|_ tj|jtj|j|j}nC#t$r6}t|jdkrdt|vsJYd}~dSd}~wwxYw| |j | |j\}}|jrM|||j|||j||dSdS)NzWycheproof Encrypt EAX Test #rrNonce cannot be empty)stridr&r rrr"ivr0r?r1r~aadr_msgvalidr&r+rr:)r(rr)er+rs r test_encryptz"TestVectorsWycheproof.test_encrypts2SZZ? WRVS\25"+NNNFF   ru::??'>#a&&'H'H'HH FFFFF   bf++BF33C 8    R ' ' '   S"& ) ) ) IIbMMMMM  s1A B+B  BcFdt|jz|_ tj|jtj|j|j}nC#t$r6}t|jdkrdt|vsJYd}~dSd}~wwxYw| |j  | |j|j}|jsJ|||j||dS#t$r |jrJYdSwxYw)NzWycheproof Decrypt EAX Test #rrr=)r>r?r&r rrr"r@r0r?r1r~rArfr+rrCr&rBr:)r(rr)rDr*s r test_decryptz"TestVectorsWycheproof.test_decrypts02SZZ? WRVS\25"+NNNFF   ru::??'>#a&&'H'H'HH FFFFF   bf **25"&99B8OO8   R ( ( ( IIbMMMMM    x  <    s)1A B+B  B. D D D cdt|jz|_t|jdkst|jdkrdSt j|jt j |j|j }| |j t|jdt|jdz zdz}|t|j||jdS)Nz%Wycheproof Corrupt Decrypt EAX Test #rr=r)r>r?r&r1r@r+r rrr"r0r~rAr r8r?rfr)r(rr) ct_corrupts rtest_corrupt_decryptz*TestVectorsWycheproof.test_corrupt_decrypts:SZZG ru::??c"%jj1nn FrubkJJJ bfBE7c"%jj1n#=#GHH  *f&?RVTTTTTrc|jD]A}||||||BdSr4)rrErGrL)r(rs rrzTestVectorsWycheproof.runTests\' * *B   b ! ! !   b ! ! !  % %b ) ) ) ) * *rN) rrrr$r2r5r:rErGrLrrsrrrrs SSSRRR  &UUU*****rrc$eZdZedZdS)TestOtherCiphersc:||fd}t|d|z|dS)Nc:|td||jd}|d\}}|td||jd}|||}|d|dS)Nr)snoncers plaintext)rrr"r_rfr&)r(factorykey_sizer)r+rar,s r test_templatez3TestOtherCiphers.create_test..test_templates[[(!C!C!(!1'/!11F// ==GB[[(!C!C!(!1'/!11F++B44C   \3 / / / / /rtest_)setattr)clsnamerRrSrTs r create_testzTestOtherCiphers.create_tests;)0( 0 0 0 0 Wt^]33333rN)rrr classmethodrYrsrrrOrOs-44[444rrO)DESr ARC2CASTBlowfishDES_DES3_ARC2_CAST_ Blowfish_c|d}g}|ttz }|ttz }|t gz }|t |gz }|tt z }|S)Nr')getrrrrrrO)configr'testss r get_testsrhs **%:;; E _X & &&E _[ ) ))E !! ##E $%899 ;;E _- . ..E Lr__main__cBtjtSr4)r" TestSuiterhrsrrrlsH&y{{33rsuite) defaultTest)$r"binasciirCrypto.SelfTest.st_commonrCrypto.SelfTest.loaderrCrypto.Util.py3compatrr Crypto.Cipherr r Crypto.Hashr rer rr#rrrrrOr[r\r]r^rYr>rSksrhrrmmainrsrrrwsE>555555??????////////######## %%%%%%888ZQZQZQZQZQx ZQZQZQz R-R-R-R-R-(#R-R-R-jd&d&d&d&d&x(d&d&d&NJ*J*J*J*J*H-J*J*J*Z44444x(444*:9999999999999Vcc#,&7&77clKKK ->>B  33r77!2D"==== ->>B  33r77!2D"==== ->>B  33r77!2D"====  FFB  ss2ww!6"EEEE     z 3 3EHMg&&&&&&r