ƺhBS ddlZddlmZmZddlmZddlmZmZddl m Z m Z ddl m Z mZddlmZdZGd d ejZGd d ejZGd dejZifdZedkrdZejddSdS)N)hexlify unhexlify)list_test_cases)tobytesbchr)AESDES3)SHAKE128SHA256)Countercltjt||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_CTR.pyget_tag_randomr(s) z4CtrTests.test_unaligned_data_128..%???aq))???rrc:g|]}|Srgrhris rrlz4CtrTests.test_unaligned_data_128..rmr)rrrr(r)r,joinr*r. plaintexts ciphertextsr/s @rtest_unaligned_data_128z CtrTests.test_unaligned_data_128s+!^c) s|T\JJJ????:??? s|T\JJJ +..sxx ?S?S0T0TUUUs|T\JJJ????:??? s|T\JJJ +..sxx ?S?S0T0TUUUUUrcdgdz}tj|jtj|jfd|D}tj|jtj|j|d|d|tj|jtj|jfd|D}tj|jtj|j|d|d|dS)Nrdrer%c:g|]}|Srgrhris rrlz3CtrTests.test_unaligned_data_64..rmrrc:g|]}|Srgrhris rrlz3CtrTests.test_unaligned_data_64..rmr) r rrrr(r5r,ror*rps @rtest_unaligned_data_64zCtrTests.test_unaligned_data_64s+!^c) $, dkJJJ????:??? $, dkJJJ +..sxx ?S?S0T0TUUU$, dkJJJ????:??? $, dkJJJ +..sxx ?S?S0T0TUUUUUrcV|ttj|jtjd|j|ttj|jtj|jdtj|jtj|jddS)Nr%)r&unknownF)r& use_aesni)r9r:rrrr(r)r;s rtest_unknown_parametersz CtrTests.test_unknown_parameterss )SWdlCLT\  3 3 3 )SWdlCL"&,  ; ; ;  clDLERRRRRRrcdD]\}tj|jtj|j}t ||d}||d]dS)N)r*r+r%r)rrrr(r)getattrr,)r.funcr/results rtest_null_encryption_decryptionz(CtrTests.test_null_encryption_decryptionsi( * *DWT\3<NNNF*WVT**3//F   VS ) ) ) ) * *rctj|jtj|j}|d|t|jdtj|jtj|j}|d|t|jddS)Nr%r) rrrr(r)r*r9r:r+r_s rtest_either_encrypt_or_decryptz'CtrTests.test_either_encrypt_or_decryptss|T\JJJs )V^S999s|T\JJJs )V^S99999rctjdtddz}d}tj|jtj|}|d|z|t|jdtj|jtj|}|t|jd|dzztj|jtj|}| d|z|t|j dtj|jtj|}|t|j d|dzzdS) Nr r!ir%9) r rrrrr(r*r9 OverflowErrorr+)r.r& max_bytesr/s rtest_wrap_aroundzCtrTests.test_wrap_arounds;+aQ" 555 s|WEEEti'((( ->>>s|WEEE -Q9OPPPs|WEEEti'((( ->>>s|WEEE -Q9OPPPPPrcJd}d}tj|jtj|j|}||}tj|jtjt |jt |}|t |}|||||j|jtj|jtj|j|}| |}tj|jtjt |jt |} | t |} ||| dS)Ns1111111111111111rUrQ) rrrr(rr* bytearrayr,r?r+) r.rivrJref1rKref2cipher3ref3cipher4ref4s rtest_bytearrayzCtrTests.test_bytearraysh &'$, $ (*,,,t$$'$, )$- 8 8(1" 777y// t$$$  666'$, $ (*,,,t$$'$, )$- 8 8(1" 777y// t$$$$$rctjdtjd}|ddz}t j|}||ddS)Ns AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArrDBi@B@96204fc470476561a3a8f3b6fe6d24be85c87510b638142d1d0fb90989f8a6a6)rrr(r*r hexdigestr,)r.r/r1digests rtest_very_long_datazCtrTests.test_very_long_dataseCL<<< ^^D7N + +B))++ !cdddddrcBd}tjdtj|j}||}t d}tjdtj|j}|||}|||||dtjdtj|j}|||}|||||ddSNs555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555554444444444444444rDoutput)rrr(rr*rr,r+)r.r0r/r1rress rtest_output_paramzCtrTests.test_output_params #,dmDDD ^^B  3#,dmDDDnnRn// V$$$ d####,dmDDDnnRn// V$$$ d#####rcd}tjdtj|j}||}t t d}tjdtj|j}||||||tjdtj|j}||||||dSr) rrr(rr* memoryviewrr,r+)r.r0r/r1rs rtest_output_param_memoryviewz%CtrTests.test_output_param_memoryview(s #,dmDDD ^^B  IcNN++#,dmDDDr&))) V$$$#,dmDDDr&))) V$$$$$rcd}d|z}tjdtj|j}||}tjdtj|j}|t |j|d|ztjdtj|j}|t |j|d|zt|dz }tjdtj|j}|t|j||tjdtj|j}|t|j||dS)Nr5rrD0rr) rrr(rr*r9r:r+rrV)r.LEN_PTr0r/r1shorter_outputs rtest_output_param_negzCtrTests.test_output_param_neg7s> F]#,dmDDD ^^B  #,dmDDD )V^Rv NNN#,dmDDD )V^Rv NNN"6A:..#,dmDDD *fnbPPP#,dmDDD *fnbPPPPPrN)!__name__ __module__ __qualname__rrrrrr rr5r)r3r6r<rBrNrSrWr[r`rbrsrwr|rrrrrrrrrgrrrr+snY++GnY++G~j!,,H~j!,,H W[H - - -Fgk"X...G""""""XXX 3 3 3EEE6AAA*EEE,444 <<<=== V V V V V VSSS*** :::QQQ&%%%>eee $$$" % % %QQQQQrrc$eZdZdZdZdZdZdS)SP800TestVectorszQClass exercising the CTR test vectors found in Section F.5 of NIST SP 800-38Acd}d}d}tjdtdd}t|}t|}t|}tj|tj|}||||tj|tj|}||||dS) Nڀ6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710ڀ874d6191b620e3261bef6864990db6ce9806f66b7970fdff8617187bb9fffdff5ae4df3edbd5d35e5b4f09020db03eab1e031dda2fbe03d1792170a0f3009cee 2b7e151628aed2a6abf7158809cf4f3crf0f1f2f3f4f5f6f7f8f9fafbfcfdnbitsr"rFr%r rrrr(r,r*r+r.r' ciphertextkeyr&r/s r test_aes_128zSP800TestVectors.test_aes_128Os; ; ; "+45S+T+T28:::nni(( z** clG<<<  22J???clG<<<  33Y?????rcd}d}d}tjdtdd}t|}t|}t|}tj|tj|}||||tj|tj|}||||dS) Nrڀ1abc932417521ca24f2b0459fe7e6e0b090339ec0aa6faefd5ccc2c6f4ce8e941e36b26bd1ebc670d1bd1d665620abf74f78a7f6d29809585a97daec58c6b05008e73b0f7da0e6452c810f32b809079e562f8ead2522c6b7brrrrr%rrs r test_aes_192zSP800TestVectors.test_aes_192fs; ; K "+45S+T+T28:::nni(( z** clG<<<  22J???clG<<<  33Y?????rcd}d}d}tjdtdd}t|}t|}t|}tj|tj|}||||tj|tj|}||||dS) Nrڀ601ec313775789a5b7a7f504bbf3d228f443e3ca4d62b59aca84e990cacaf5c52b0930daa23de94ce87017ba2d84988ddfc9c58db67aada613c2dd08457941a6@603deb1015ca71be2b73aef0857d77811f352c073b6108d72d9810a30914dff4rrrrr%rrs r test_aes_256zSP800TestVectors.test_aes_256}s; ; [ "+45S+T+T28:::nni(( z** clG<<<  22J???clG<<<  33Y?????rN)rrr__doc__rrrrgrrrrKsV@@@.@@@.@@@@@rrcdeZdZdZgZeD]!ZedeD"dZdS)RFC3686TestVectors) ) 53696e676c6520626c6f636b206d7367 e4095d4fb7a7b3792d6175a3261311b8 ae6852f8121067cc4bf7a5765577f39e000000300000000000000000)@000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f@5104a106168a72d9790d41ee8edad388eb2e1efc46da57c8fce630df9141be28 7e24067817fae0d743d6ce1f32539163006cb6dbc0543b59da48d90b)H000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20212223Hc1cf48a89f2ffdd9cf4652e9efdb72d74540a42bde6d7836d59a5ceaaef3105325b2072f 7691be035e5020a8ac6e618529f9a0dc00e0017b27777f3f4a1786f0)r 4b55384fe259c9c84e7935a003cbe928016af5b145fc9f579c175f93e3bfb0eed863d06ccfdb785150000004836733c147d6d93cb)r@453243fc609b23327edfaafa7131cd9f8490701c5ad4a79cfc1fe0ff42f4fb0007c5cb2401b3dc33c19e7340819e0f69c678c3db8e6f6a91a0096b03b020c6eadc2cb500d)rH96893fc55e5c722f540b7dd1ddf7e758d288bc95c69165884536c811662f2188abee0935002bf391ee8ecb159b959617b0965279bf59b60a786d3e0fe0007bdfd5cbd60278dcc0912)r 145ad01dbf824ec7560863dc71e3e0c0@776beff2851db06f4c8a0542c8696f6c6a81af1eec96b4d37fc1d689e6c1c10400000060db5672c97aa8f0b2)r@f05e231b3894612c49ee000b804eb2a9b8306b508f839d6a5530831d9344af1c@f6d66d6bd52d59bb0796365879eff886c66dd51a5b6a99744b50590c87a2388400faac24c1585ef15a43d875)rHeb6c52821d0bbbf7ce7594462aca4faab407df866569fd07f48cc0b583d6071f1ec0e6b8@ff7a617ce69148e4f1726e2f43581de2aa62d9f805532edff1eed687fb54153d001cc5b751a51d70a1c11148c,g|]}t|Srg)r)rjrks rrlzRFC3686TestVectors.s111 ! 111rc|jD]\}}}}tjd|}tj|tj|}||}|t|t|dS)Nr r!r%)bindatar rrr(r*r,r)r.r0r1rr"r&r/rs rrunTestzRFC3686TestVectors.runTests#'< ; ; BCk"V444GWS#,@@@F^^B''F   WR[['&// : : : :  ; ;rN)rrrrrtvappendrrgrrrrse% DNG3311b1112222;;;;;rrcg}|ttz }|ttz }|tgz }|Sr8)rrrr)configtestss r get_testsrsE E _X & &&E _- . ..E !## %%E Lr__main__cBtjtSr8)unittest TestSuiterrgrrrsH&y{{33rsuite) defaultTest)rbinasciirrCrypto.SelfTest.st_commonrCrypto.Util.py3compatrr Crypto.Cipherrr Crypto.Hashr r Crypto.Utilr rTestCaserrrrrrmainrgrrrs>''''''''555555////////########((((((((888]Q]Q]Q]Q]Qx ]Q]Q]Q@ F@F@F@F@F@x(F@F@F@R7;7;7;7;7;*7;7;7;t z 3 3EHMg&&&&&&r