ƺh>rddlZddlmZddlmZddlmZddlmZm Z ddl m Z m Z m Z ddlmZddlmZd ZGd d eZGd d ejZdZdZeD]3ZdD].ZedeZeefdZeedeze/4eD]3ZdD].ZedeZeefdZeedeze/4[[dZeD]3ZdD]ZedeZeefdZeedeze4GddejZifdZ e!dkrdZ"ej#ddSdS) N) unhexlify)load_test_vectors)list_test_cases)tobytes is_string)AESDES3DES)SHAKE128)BlockChainingTestscltjt||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_CFB.pyget_tag_randomr+s) z4CfbTests.test_unaligned_data_128..:%???aq))???rrc:g|]}|Srr r"s rr&z4CfbTests.test_unaligned_data_128..?r'r)rrkey_128MODE_CFBiv_128 assertEqualjoinr!self plaintexts ciphertextsr%s @rtest_unaligned_data_128z CfbTests.test_unaligned_data_1286s3!^c) s|T[qQQQ????:??? s|T[qQQQ +..sxx ?S?S0T0TUUUs|T[sSSS????:??? s|T[sSSS +..sxx ?S?S0T0TUUUUUrcdgdz}tj|jtj|jdfd|D}tj|jtj|jd|d|d|tj|jtj|jdfd|D}tj|jtj|jd|d|d|dS) Nrrrrc:g|]}|Srr r"s rr&z3CfbTests.test_unaligned_data_64..Fr'rr@c:g|]}|Srr r"s rr&z3CfbTests.test_unaligned_data_64..Kr'r)r rkey_192r+iv_64r-r.r!r/s @rtest_unaligned_data_64zCfbTests.test_unaligned_data_64Cs7!^c) $, tzPQRRR????:??? $, tzPQRRR +..sxx ?S?S0T0TUUU$, tzPRSSS????:??? $, tzPRSSS +..sxx ?S?S0T0TUUUUUrc  tdddD].}tj|jtj|j|}/dD]@}|ttj|jtj|j|AdS)Nrr)r r<)rangerrr*r+r, assertRaises ValueErrorr0bitsr%s rtest_segment_size_128zCfbTests.test_segment_size_128Qs!S!$$ 0 0DWT\3<*.000FF& 1 1D   j#'4<"k+/  1 1 1 1 1 1rc  tdddD].}tj|jtj|j|}/dD]@}|ttj|jtj|j|AdS)NrAr)rr=r>?rG) r@r rr8r+r9rArBrrCs rtest_segment_size_64zCfbTests.test_segment_size_64[s!ROO 1 1DXdlDM4:+/111FF$ 1 1D   j$(DL#,"j+/  1 1 1 1 1 1rN) __name__ __module__ __qualname__rr+aes_moder des3_moder3r:rErIrrrrr/sd|H I V V V V V V11111111rrc eZdZdZdZdZdS)NistCfbVectorsctd|d|zddi}|dSd}|D]}t|r|}|j|_t j|jtj|j|}|dkr4| | |j |j |dkr4| | |j |j JdS)NCipherrz AES CFB%d KATcountc t|SNintr$s rz1NistCfbVectors._do_kat_aes_test..m #a&&rr [ENCRYPT] [DECRYPT])rrdesc descriptionrrkeyr+ivr-r! plaintext ciphertextdecrypt)r0 file_namer test_vectors directiontvr%s r_do_kat_aes_testzNistCfbVectors._do_kat_aes_tesths ():%+l:%(8(8:==    F   B}}  !wD WRVS\25*6888FK''   !=!=r}MMMMk))   !>!> MMMMu  rc td|dzddi}|dSdvsJd}|D]@ t r } j|_t j jtj j} fd}|dkrpg}td D]<}| j ||} | | | =| |d  j|d krqg} td D]<}| j| |} | || =| | d  j @JdS) NrRzAES CFB%d MontecarlorTc t|SrVrWrYs rrZz1NistCfbVectors._do_mct_aes_test..r[r)rr(rcdkr|dkr|dS|jg|S|dkr|S|dkrj|dz |S||dz S)Nr(r)ra) input_text output_seqjrrhs r get_inputz2NistCfbVectors._do_mct_aes_test..get_inputsn3&&Avv)"~-&.q1166%%"WW5Qq>)!!b&))rr\ir])rrr^r_rrr`r+rar@rbappendr!r-rcrd) r0rerrfrgr%ructsrtrbptsrcrhs ` @r_do_mct_aes_testzNistCfbVectors._do_mct_aes_tests():%2\A%(8(8:==    Fx'''' % % B}}  !wD WRVS\25*6888F * * * * * *K''t::A ) ",Q ? ?IJJv~~i889999  R"-8888k))t;;A!*2=#q!A!AJJJv~~j99::::  R",7777uK% % rctd|d|zddi}|dSd}|D]1}t|r|}|j|_t |dr-t j|jt j|j |}n^|j |j kr|j |j z|j z}n|j |j z}tj|tj|j |}|dkr4|||j|j|dkr5|||j|j1JdS) N)rSTDESzTDES CFB%d KATrTc t|SrVrWrYs rrZz.NistCfbVectors._do_tdes_test..r[rkeysrr\r])rrr^r_hasattrr rr~r+rakey1key3key2r r-r!rbrcrd)r0rerrfrgrhr%r`s r _do_tdes_testzNistCfbVectors._do_tdes_testsw();%,|;%(8(8:==    F   B}}  !wD r6"" =#,.:<<<7bg%%'BG+bg5CC'BG+C#t}be/;===K''   !=!=r}MMMMk))   !>!> MMMMu/  rN)rJrKrLrirzrrrrrPrPfsB8111f!!!!!rrP)zCFB?GFSbox128.rspzCFB?GFSbox192.rspzCFB?GFSbox256.rspzCFB?KeySbox128.rspzCFB?KeySbox192.rspzCFB?KeySbox256.rspzCFB?VarKey128.rspzCFB?VarKey192.rspzCFB?VarKey256.rspzCFB?VarTxt128.rspzCFB?VarTxt192.rspzCFB?VarTxt256.rspzCFB?MMT128.rspzCFB?MMT192.rspzCFB?MMT256.rsp)zCFB?MCT128.rspzCFB?MCT192.rspzCFB?MCT256.rsp)8128?cL||t|dSrV)rirXr0rerDs rnew_funcr$  ! !)SYY 7 7 7 7 7r test_AES_cL||t|dSrV)rzrXrs rrrrr)z TCFB?MMT2.rspz TCFB?MMT3.rspzTCFB?invperm.rspzTCFB?permop.rspzTCFB?subtab.rspzTCFB?varkey.rspzTCFB?vartext.rsp)r64cL||t|dSrV)rrXrs rrrs$   y#d)) 4 4 4 4 4r test_TDES_c6eZdZdZdZdZdZdZdZdZ dS) SP800TestVectorszPClass exercising the CFB test vectors found in Section F.3 of NIST SP 800-3Acd}d}d}d}t|}t|}t|}t|}tj|tj|d}||||tj|tj|d}||||dS)N$6bc1bee22e409f96e93d7e117393172aae2d$3b79424c9c0dd436bace9e0ed4586a4f32b9 2b7e151628aed2a6abf7158809cf4f3c 000102030405060708090a0b0c0d0e0frrrrrr+r-r!rdr0rbrcr`rar%s rtest_aes_128_cfb8z"SP800TestVectors.test_aes_128_cfb8s> > ::nn r]]i(( z** clBQ???  22J???clBQ???  33Y?????rcd}d}d}d}t|}t|}t|}t|}tj|tj|d}||||tj|tj|d}||||dS)Nr$cda2521ef0a905ca44cd057cbf0d47a0678a08e73b0f7da0e6452c810f32b809079e562f8ead2522c6b7brrrrrs rtest_aes_192_cfb8z"SP800TestVectors.test_aes_192_cfb8,s> > J:nn r]]i(( z** clBQ???  22J???clBQ???  33Y?????rcd}d}d}d}t|}t|}t|}t|}tj|tj|d}||||tj|tj|d}||||dS)Nr$dc1f1a8520a64db55fcc8ac554844e889700@603deb1015ca71be2b73aef0857d77811f352c073b6108d72d9810a30914dff4rrrrrs rtest_aes_256_cfb8z"SP800TestVectors.test_aes_256_cfb8<s> > Z:nn r]]i(( z** clBQ???  22J???clBQ???  33Y?????rcd}d}d}d}t|}t|}t|}t|}tj|tj|d}||||tj|tj|d}||||dS)Nڀ6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710ڀ3b3fd92eb72dad20333449f8e83cfb4ac8a64537a0b3a93fcde3cdad9f1ce58b26751f67a3cbb140b1808cf187a4f4dfc04b05357c5d1c0eeac4c66f9ff7f2e6rrr(rrrs rtest_aes_128_cfb128z$SP800TestVectors.test_aes_128_cfb128Ls; ; ;:nn r]]i(( z** clBSAAA  22J???clBSAAA  33Y?????rcd}d}d}d}t|}t|}t|}t|}tj|tj|d}||||tj|tj|d}||||dS)Nrڀcdc80d6fddf18cab34c25909c99a417467ce7f7f81173621961a2b70171d3d7a2e1e8a1dd59b88b1c8e60fed1efac4c9c05f9f9ca9834fa042ae8fba584b09ffrrr(rrrs rtest_aes_192_cfb128z$SP800TestVectors.test_aes_192_cfb128bs; ; K:nn r]]i(( z** clBSAAA  22J???clBSAAA  33Y?????rcd}d}d}d}t|}t|}t|}t|}tj|tj|d}||||tj|tj|d}||||dS)Nrڀdc7e84bfda79164b7ecd8486985d386039ffed143b28b1c832113c6331e5407bdf10132415e54b92a13ed0a8267ae2f975a385741ab9cef82031623d55b1e471rrr(rrrs rtest_aes_256_cfb128z$SP800TestVectors.test_aes_256_cfb128xs; ; [:nn r]]i(( z** clBSAAA  22J???clBSAAA  33Y?????rN) rJrKrL__doc__rrrrrrrrrrrs@@@ @@@ @@@ @@@,@@@,@@@@@rrcg}|ttz }|dr|ttz }|ttz }|S)N slow_tests)rrgetrPr)configtestss r get_testsrsW E _X & &&E zz,1 000 _- . ..E Lr__main__cBtjtSrV)unittest TestSuiterrrrrZrZsH&y{{33rsuite) defaultTest)$rbinasciirCrypto.SelfTest.loaderrCrypto.SelfTest.st_commonrCrypto.Util.py3compatrr Crypto.Cipherrr r Crypto.Hashr Crypto.SelfTest.Cipher.test_CBCr rrTestCaserPnist_aes_kat_mmt_filesnist_aes_mct_files file_gen_namerDreplacerersetattrnist_tdes_filesrrrJrmainrrrrs>44444455555544444444(((((((((( >>>>>>8884141414141!414141nrrrrrX&rrrl& ,CCMCC!))#t44 %.T 8 8 8 8 i 7BBBB C (CCMCC!))#t44 %.T 8 8 8 8 i 7BBBB C x%@@M55!))#t44 %.T 5 5 5 5 5 GNL94h???? u@u@u@u@u@x(u@u@u@p z 3 3EHMg&&&&&&r