ƺh dZddlZddlmZmZddlmZddlmZddl m Z m Z ddl m Z ddlmZd d gZd ZeD]Ze d ed ezddipgZeeD]\ZZeeerejejzejzZe eeje eeje eeededfZe eGddej!Z"Gddej!Z#Gddej!Z$ifdZ%e&dkrddlZdZ'ej(ddSdS)z&Self-test suite for Crypto.Cipher.DES3N)hexlify unhexlify)DES3)strxor_c)bchrtostr)load_test_vectors)list_test_cases)054686520717566636b2062726f776e20666f78206a756d700a826fd8ce53b855fcce21c8112256fe668d5c05dd9b6b90000123456789abcdef23456789abcdef01456789abcdef0123zNIST SP800-67 B.1)21e81b7ade88a2595c577d4d9b20c0f8 9b397ebf81b1181e282f4bb8adbadc6bz Two-key 3DES)z TECBMMT2.rspz TECBMMT3.rsp)CipherTDESz TDES ECB (%s)countc t|SN)int)xs /builddir/build/BUILD/imunify360-venv-2.5.2/opt/imunify360/venv/lib64/python3.11/site-packages/Crypto/SelfTest/Cipher/test_DES3.pyr@s CFFz ()c eZdZdZdZdZdS) CheckParityctd}tj|}||tddS)N CABF326FA56734324FFCCABCDEFACABF CBBF326EA46734324FFDCBBCDFFBCBBFrradjust_key_parity assertEqual)self before_2kafter_2ks rtest_parity_option2zCheckParity.test_parity_option2RsU@AA ))44 "#EFF H H H H Hrctd}tj|}||tddS)N0AAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCC0ABABABABABABABABBABABABABABABABACDCDCDCDCDCDCDCDr!)r$ before_3kafter_3ks rtest_parity_option3zCheckParity.test_parity_option3XsUPQQ ))44 "#UVV X X X X Xrc tddz}tddz}|ttj|dz|z|ttj||dzz|ttj|dz|ttj|t |dz|zdSN)r assertRaises ValueErrorrr"rr$sub_key1sub_key2s rtest_degradationzCheckParity.test_degradation^s77Q;99q= *d&<"Q,1 3 3 3 *d&<"X\1 3 3 3 *d&<"Q, ( ( ( *d&<"Xh%:%::XE G G G G GrN)__name__ __module__ __qualname__r'r-r:rrrrPsLHHH XXX GGGGGrrceZdZdZdS)DegenerateToDESTestc tddz}tddz}|ttj|dz|ztj|ttj||dzztj|ttj|dztj|ttj||zt |dztjdSr/)rr5r6rnewMODE_ECBrr7s rrunTestzDegenerateToDESTest.runTestus77Q;99q= *dh"Q,1- ) ) ) *dh"X\1- ) ) ) *dh"Q,- ) ) ) *dh"X-30G0GG- ) ) ) ) )rNr;r<r=rDr>rrr@r@ss#)))))rr@ceZdZdZdS) TestOutputctjdtj}d}||}t d}|||}|||||d|||}|||||dtt d}|||||||||||||t|j|d|t|j|dt d}|t|j|||t|j||dS)Ns44444444GGGGGGGGTTTTTTTTs5555555555555555)outputs0000000000000000) rrBrCencrypt bytearrayr#decrypt memoryviewr5 TypeErrorr6)r$cipherptctrJresshorter_outputs rrDzTestOutput.runTests2DMBB  ^^B  2nnRn// V$$$ d###nnRn// V$$$ d###IbMM**r&))) V$$$r&))) V$$$ )V^RHHH )V^RHHH"1 *fnbPPP *fnbPPPPPrNrEr>rrrGrGs(QQQQQrrGcddlm}g}|tdt}|t |t tz }|tgz }|S)Nr0)make_block_testsr) commonrWr test_dataappendr@r rrG)configrWtestss r get_testsr]sm(((((( E  T69 5 5E LL$&&''' _[ ) ))E jll^E Lr__main__cFtjtdSr)unittest TestSuiter]r>rrsuiterbs9;;'''''rrb) defaultTest))__doc__r`binasciirr Crypto.CipherrCrypto.Util.strxorrCrypto.Util.py3compatrrCrypto.SelfTest.loaderr Crypto.SelfTest.st_commonr rYnist_tdes_mmt_files tdes_file test_vectors enumerateindextv isinstancestrkey1key2key3key plaintext ciphertexttest_data_itemrZTestCaserr@rGr]r;rbmainr>rrr|s2-,''''''''''''''--------444444555555<  $7$))I$$*!')3 "2"23 55;9;  Y|,, ) ) r :b#    g"')% 5 566% 6 677% --'0yy%%%8: (((( ) G G G G G(# G G GF)))))(+)))6QQQQQ"QQQD zOOO(((HMg&&&&&& r