ƺhG>TdZddlZddlmZdZdZgddded fd d ed fd dedfddedfddedfddedfddedfddedfdd ed!fd"d#ed$fd%d&ed'fd(d)ed*fd+d,ed-fd.d/ed0fd1d2ed3fd4d5ed6fd7d8ed9fd:d;eded?fd@dAedBfdCdDedEfdFdGedHfdIdJedKfdLdMedNfdOdPedQfdRdSedTfdUdVedWfdXdYedZfd[d\ed]fd^d_ed`fdadbedcfdddeedffdgdhedifdjdkedlfdmdnedofdpdqedrfdsdtedufdvdwedxfdydzed{fd|d}ed~fddedfddedfddedfddedfddedfddedfddedfddedfddedfddedfddedfddedfddedfddedfddedfddedfddedfddedfddedfddedfddedfddedfddedfddedfedddfedddfedddfedddfedddfedddfedddfedddfedddfedddfedddfedddfedddfedddfedddfedddfedddfedddfedddfedddfedddfedddfed d d fed d dfedddfedddfedddfedddfedddfeddd fed!d"d#fed$d%d&fed'd(d)fed*d+d,fed-d.d/fed0d1d2fed3d4d5fed6d7d8fed9d:d;fed<d=d>fed?d@dAfedBdCdDfedEdFdGfedHdIdJfedKdLdMfedNdOdPfedQdRdSfedTdUdVfedWdXdYfedZd[d\fed]d^d_fed`dadbfedcdddefedfdgdhfedidjdkfedldmdnfZGdodpejZGdqdrejZ ifdsZ e dtkrddlZduZ ej dvwdSdS(xz%Self-test suite for Crypto.Cipher.DESN)DES01010101010101010000000000000000)r82dcbafbdeab660210316e028c8f3b4azNIST SP800-17 A800000000000000095f8a5e5dd31d900zNIST SP800-17 B.1 #04000000000000000dd7f121ca5015619zNIST SP800-17 B.1 #120000000000000002e8653104f3834eazNIST SP800-17 B.1 #210000000000000004bd388ff6cd81d4fzNIST SP800-17 B.1 #3080000000000000020b9e767b2fb1456zNIST SP800-17 B.1 #4040000000000000055579380d77138efzNIST SP800-17 B.1 #502000000000000006cc5defaaf04512fzNIST SP800-17 B.1 #601000000000000000d9f279ba5d87260zNIST SP800-17 B.1 #70080000000000000d9031b0271bd5a0azNIST SP800-17 B.1 #80040000000000000424250b37c3dd951zNIST SP800-17 B.1 #90020000000000000b8061b7ecd9a21e5zNIST SP800-17 B.1 #100010000000000000f15d0f286b65bd28zNIST SP800-17 B.1 #110008000000000000add0cc8d6e5deba1zNIST SP800-17 B.1 #120004000000000000e6d5f82752ad63d1zNIST SP800-17 B.1 #130002000000000000ecbfe3bd3f591a5ezNIST SP800-17 B.1 #140001000000000000f356834379d165cdzNIST SP800-17 B.1 #1500008000000000002b9f982f20037fa9zNIST SP800-17 B.1 #160000400000000000889de068a16f0be6zNIST SP800-17 B.1 #170000200000000000e19e275d846a1298zNIST SP800-17 B.1 #180000100000000000329a8ed523d71aeczNIST SP800-17 B.1 #190000080000000000e7fce22557d23c97zNIST SP800-17 B.1 #20000004000000000012a9f5817ff2d65dzNIST SP800-17 B.1 #210000020000000000a484c3ad38dc9c19zNIST SP800-17 B.1 #220000010000000000fbe00a8a1ef8ad72zNIST SP800-17 B.1 #230000008000000000750d079407521363zNIST SP800-17 B.1 #24000000400000000064feed9c724c2fafzNIST SP800-17 B.1 #250000002000000000f02b263b328e2b60zNIST SP800-17 B.1 #2600000010000000009d64555a9a10b852zNIST SP800-17 B.1 #270000000800000000d106ff0bed5255d7zNIST SP800-17 B.1 #280000000400000000e1652c6b138c64a5zNIST SP800-17 B.1 #290000000200000000e428581186ec8f46zNIST SP800-17 B.1 #300000000100000000aeb5f5ede22d1a36zNIST SP800-17 B.1 #310000000080000000e943d7568aec0c5czNIST SP800-17 B.1 #320000000040000000df98c8276f54b04bzNIST SP800-17 B.1 #330000000020000000b160e4680f6c696fzNIST SP800-17 B.1 #340000000010000000fa0752b07d9c4ab8zNIST SP800-17 B.1 #350000000008000000ca3a2b036dbc8502zNIST SP800-17 B.1 #3600000000040000005e0905517bb59bcfzNIST SP800-17 B.1 #370000000002000000814eeb3b91d90726zNIST SP800-17 B.1 #3800000000010000004d49db1532919c9fzNIST SP800-17 B.1 #39000000000080000025eb5fc3f8cf0621zNIST SP800-17 B.1 #400000000000400000ab6a20c0620d1c6fzNIST SP800-17 B.1 #41000000000020000079e90dbc98f92ccazNIST SP800-17 B.1 #420000000000100000866ecedd8072bb0ezNIST SP800-17 B.1 #4300000000000800008b54536f2f3e64a8zNIST SP800-17 B.1 #440000000000040000ea51d3975595b86bzNIST SP800-17 B.1 #450000000000020000caffc6ac4542de31zNIST SP800-17 B.1 #4600000000000100008dd45a2ddf90796czNIST SP800-17 B.1 #4700000000000080001029d55e880ec2d0zNIST SP800-17 B.1 #4800000000000040005d86cb23639dbea9zNIST SP800-17 B.1 #4900000000000020001d1ca853ae7c0c5fzNIST SP800-17 B.1 #500000000000001000ce332329248f3228zNIST SP800-17 B.1 #5100000000000008008405d1abe24fb942zNIST SP800-17 B.1 #520000000000000400e643d78090ca4207zNIST SP800-17 B.1 #53000000000000020048221b9937748a23zNIST SP800-17 B.1 #540000000000000100dd7c0bbd61fafd54zNIST SP800-17 B.1 #5500000000000000802fbc291a570db5c4zNIST SP800-17 B.1 #560000000000000040e07c30d7e4e26e12zNIST SP800-17 B.1 #5700000000000000200953e2258e8e90a1zNIST SP800-17 B.1 #5800000000000000105b711bc4ceebf2eezNIST SP800-17 B.1 #590000000000000008cc083f1e6d9e85f6zNIST SP800-17 B.1 #600000000000000004d2fd8867d50d2dfezNIST SP800-17 B.1 #61000000000000000206e7ea22ce92708fzNIST SP800-17 B.1 #620000000000000001166b40b44aba4bd6zNIST SP800-17 B.1 #6395a8d72813daa94d8001010101010101zNIST SP800-17 B.2 #00eec1487dd8c26d54001010101010101zNIST SP800-17 B.2 #17ad16ffb79c459262001010101010101zNIST SP800-17 B.2 #2d3746294ca6a6cf31001010101010101zNIST SP800-17 B.2 #3809f5f873c1fd7610801010101010101zNIST SP800-17 B.2 #4c02faffec989d1fc0401010101010101zNIST SP800-17 B.2 #54615aa1d33e72f100201010101010101zNIST SP800-17 B.2 #62055123350c008580180010101010101zNIST SP800-17 B.2 #7df3b99d6577397c80140010101010101zNIST SP800-17 B.2 #831fe17369b5288c90120010101010101zNIST SP800-17 B.2 #9dfdd3cc64dae16420110010101010101zNIST SP800-17 B.2 #10178c83ce2b399d940108010101010101zNIST SP800-17 B.2 #1150f636324a9b7f800104010101010101zNIST SP800-17 B.2 #12a8468ee3bc18f06d0102010101010101zNIST SP800-17 B.2 #13a2dc9e92fd3cde920101800101010101zNIST SP800-17 B.2 #14cac09f797d0312870101400101010101zNIST SP800-17 B.2 #1590ba680b22aeb5250101200101010101zNIST SP800-17 B.2 #16ce7a24f350e280b60101100101010101zNIST SP800-17 B.2 #17882bff0aa01a0b870101080101010101zNIST SP800-17 B.2 #1825610288924511c20101040101010101zNIST SP800-17 B.2 #19c71516c29c75d1700101020101010101zNIST SP800-17 B.2 #205199c29a52c9f0590101018001010101zNIST SP800-17 B.2 #21c22f0a294a71f29f0101014001010101zNIST SP800-17 B.2 #22ee371483714c02ea0101012001010101zNIST SP800-17 B.2 #23a81fbd448f9e522f0101011001010101zNIST SP800-17 B.2 #244f644c92e192dfed0101010801010101zNIST SP800-17 B.2 #251afa9a66a6df92ae0101010401010101zNIST SP800-17 B.2 #26b3c1cc715cb879d80101010201010101zNIST SP800-17 B.2 #2719d032e64ab0bd8b0101010180010101zNIST SP800-17 B.2 #283cfaa7a7dc8720dc0101010140010101zNIST SP800-17 B.2 #29b7265f7f447ac6f30101010120010101zNIST SP800-17 B.2 #309db73b3c0d163f540101010110010101zNIST SP800-17 B.2 #318181b65babf4a9750101010108010101zNIST SP800-17 B.2 #3293c9b64042eaa2400101010104010101zNIST SP800-17 B.2 #3355705308297055920101010102010101zNIST SP800-17 B.2 #348638809e878787a00101010101800101zNIST SP800-17 B.2 #3541b9a79af79ac2080101010101400101zNIST SP800-17 B.2 #367a9be42f2009a8920101010101200101zNIST SP800-17 B.2 #3729038d56ba6d27450101010101100101zNIST SP800-17 B.2 #385495c6abf1e5df510101010101080101zNIST SP800-17 B.2 #39ae13dbd5614889330101010101040101zNIST SP800-17 B.2 #40024d1ffa8904e3890101010101020101zNIST SP800-17 B.2 #41d1399712f99bf02e0101010101018001zNIST SP800-17 B.2 #4214c1d7c1cffec79e0101010101014001zNIST SP800-17 B.2 #431de5279dae3bed6f0101010101012001zNIST SP800-17 B.2 #44e941a33f855013030101010101011001zNIST SP800-17 B.2 #45da99dbbc9a03f3790101010101010801zNIST SP800-17 B.2 #46b7fc92f91d8e92e90101010101010401zNIST SP800-17 B.2 #47ae8e5caa3ca04e850101010101010201zNIST SP800-17 B.2 #489cc62df43b6eed740101010101010180zNIST SP800-17 B.2 #49d863dbb5c59a91a00101010101010140zNIST SP800-17 B.2 #50a1ab2190545b91d70101010101010120zNIST SP800-17 B.2 #510875041e64c570f70101010101010110zNIST SP800-17 B.2 #525a594528bebef1cc0101010101010108zNIST SP800-17 B.2 #53fcdb3291de21f0c00101010101010104zNIST SP800-17 B.2 #54869efd7f9f265a090101010101010102zNIST SP800-17 B.2 #55ceZdZdZdZdS) RonRivestTesta Ronald L. Rivest's DES test, see http://people.csail.mit.edu/rivest/Destest.txt ABSTRACT -------- We present a simple way to test the correctness of a DES implementation: Use the recurrence relation: X0 = 9474B8E8C73BCA7D (hexadecimal) X(i+1) = IF (i is even) THEN E(Xi,Xi) ELSE D(Xi,Xi) to compute a sequence of 64-bit values: X0, X1, X2, ..., X16. Here E(X,K) denotes the DES encryption of X using key K, and D(X,K) denotes the DES decryption of X using key K. If you obtain X16 = 1B1A2DDB4C642438 your implementation does not have any of the 36,568 possible single-fault errors described herein. cddlm}g}dg|dd<tdD]u}tj||tj}|dzs%|||g||dzd<Q|||g||dzd<v|||d|ddS)Nr)b2a_hexst;}s-Ld$8) binasciirrangernewMODE_ECBencryptdecrypt assertEqual)selfrXics /builddir/build/BUILD/imunify360-venv-2.5.2/opt/imunify360/venv/lib64/python3.11/site-packages/Crypto/SelfTest/Cipher/test_DES.pyrunTestzRonRivestTest.runTest6s$$$$$$ 45!""r , ,A!S\**AaC ,99QqT??+!A#$$99QqT??+!A#$$ 2 G7 8 8 : : : : :N)__name__ __module__ __qualname____doc__r r r rr s-*:::::r rceZdZdZdS) TestOutputctjdtj}d}||}t d}|||}|||||d|||}|||||dtt d}|||||||||||||t|j|d|t|j|dt d}|t|j|||t|j||dS)Ns44444444s55555555)outputs00000000) rrrr bytearrayrr memoryview assertRaises TypeError ValueError)rcipherptctrresshorter_outputs r r zTestOutput.runTestIs..  ^^B  1nnRn// V$$$ d###nnRn// V$$$ d###IaLL))r&))) V$$$r&))) V$$$ )V^RGGG )V^RGGG"1 *fnbPPP *fnbPPPPPr N)r r rr rr r rrGs(QQQQQr rcddlm}|tdt}|t gz }|t gz }|S)Nr)make_block_testsr)commonr"r test_datarr)configr"testss r  get_testsr'isN((((((  S% 3 3E moo E jll^E Lr __main__cBtjtS)N)unittest TestSuiter'rr r r,ssH&y{{33r suite) defaultTest)rr* Crypto.CipherrSP800_17_B1_KEYSP800_17_B2_PTr$TestCaserrr'r r-mainrr r r4sX 2,+|   | +_ | +_ | +_ |  +_ !| $+_ %| (+_ )| ,+_ -| 0+_ 1| 4+_ 5| 8+_ 9| <+_!=| @+_!A| D+_!E| H+_!I| L+_!M| P+_!Q| T+_!U| X+_!Y| \+_!]| `+_!a| d+_!e| h+_!i| l+_!m| p+_!q| t+_!u| x+_!y| |+_!}| @+_!A| D+_!E| H+_!I| L+_!M| P+_!Q| T+_!U| X+_!Y| \+_!]| `+_!a| d+_!e| h+_!i| l+_!m| p+_!q| t+_!u| x+_!y| |+_!}| @+_!A| D+_!E| H+_!I| L+_!M| P+_!Q| T+_!U| X+_!Y| \+_!]| `+_!a| d+_!e| h+_!i| l+_!m| p+_!q| t+_!u| x+_!y| |+_!}| @+_!A| D+_!E| H+_!I| L+_!M| P+_!Q| X'); Y| \'); ]| `'); a| d'); e| h'); i| l'); m| p'); q| t'); u| x'); y| |'); }| @');!A| D');!E| H');!I| L');!M| P');!Q| T');!U| X');!Y| \');!]| `');!a| d');!e| h');!i| l');!m| p');!q| t');!u| x');!y| |');!}| @');!A| D');!E| H');!I| L');!M| P');!Q| T');!U| X');!Y| \');!]| `');!a| d');!e| h');!i| l');!m| p');!q| t');!u| x');!y| |');!}| @');!A| D');!E| H');!I| L');!M| P');!Q| T');!U| X');!Y| \');!]| `');!a| d');!e| h');!i| l');!m| p');!q| t');!u|  |$:$:$:$:$:H%$:$:$:NQQQQQ"QQQD zOOO 3 3EHMg&&&&&&r