
    Eh:                     >   d Z dZddlmZ ddl ddlZdZdZg dd	d
edfddedfddedfddedfddedfddedfddedfdded fd!d"ed#fd$d%ed&fd'd(ed)fd*d+ed,fd-d.ed/fd0d1ed2fd3d4ed5fd6d7ed8fd9d:ed;fd<d=ed>fd?d@edAfdBdCedDfdEdFedGfdHdIedJfdKdLedMfdNdOedPfdQdRedSfdTdUedVfdWdXedYfdZd[ed\fd]d^ed_fd`daedbfdcddedefdfdgedhfdidjedkfdldmednfdodpedqfdrdsedtfdudvedwfdxdyedzfd{d|ed}fd~dedfddedfddedfddedfddedfddedfddedfddedfddedfddedfddedfddedfddedfddedfddedfddedfddedfddedfddedfddedfddedfddedfddedfddedfddedfedddfedddfedddfedddfedddfedddfedddfedddfedddfedddfedddfedddfedddfedddfedddfedddfedddfedddfedd dfedddfedddfedd	d
fedddfedddfedddfedddfedddfedddfedddfed d!d"fed#d$d%fed&d'd(fed)d*d+fed,d-d.fed/d0d1fed2d3d4fed5d6d7fed8d9d:fed;d<d=fed>d?d@fedAdBdCfedDdEdFfedGdHdIfedJdKdLfedMdNdOfedPdQdRfedSdTdUfedVdWdXfedYdZd[fed\d]d^fed_d`dafedbdcddfededfdgfedhdidjfedkdldmfedndodpfZ G dq drej                        Z
i fdsZedtk(  rddlZdu Z ej                  dvw       yy(x  z%Self-test suite for Crypto.Cipher.DESz$Id$    )dict)*N01010101010101010000000000000000)r   82dcbafbdeab660210316e028c8f3b4azNIST SP800-17 A800000000000000095f8a5e5dd31d900zNIST SP800-17 B.1 #04000000000000000dd7f121ca5015619zNIST SP800-17 B.1 #120000000000000002e8653104f3834eazNIST SP800-17 B.1 #210000000000000004bd388ff6cd81d4fzNIST SP800-17 B.1 #3080000000000000020b9e767b2fb1456zNIST SP800-17 B.1 #4040000000000000055579380d77138efzNIST SP800-17 B.1 #502000000000000006cc5defaaf04512fzNIST SP800-17 B.1 #601000000000000000d9f279ba5d87260zNIST SP800-17 B.1 #70080000000000000d9031b0271bd5a0azNIST SP800-17 B.1 #80040000000000000424250b37c3dd951zNIST SP800-17 B.1 #90020000000000000b8061b7ecd9a21e5zNIST SP800-17 B.1 #100010000000000000f15d0f286b65bd28zNIST SP800-17 B.1 #110008000000000000add0cc8d6e5deba1zNIST SP800-17 B.1 #120004000000000000e6d5f82752ad63d1zNIST SP800-17 B.1 #130002000000000000ecbfe3bd3f591a5ezNIST SP800-17 B.1 #140001000000000000f356834379d165cdzNIST SP800-17 B.1 #1500008000000000002b9f982f20037fa9zNIST SP800-17 B.1 #160000400000000000889de068a16f0be6zNIST SP800-17 B.1 #170000200000000000e19e275d846a1298zNIST SP800-17 B.1 #180000100000000000329a8ed523d71aeczNIST SP800-17 B.1 #190000080000000000e7fce22557d23c97zNIST SP800-17 B.1 #20000004000000000012a9f5817ff2d65dzNIST SP800-17 B.1 #210000020000000000a484c3ad38dc9c19zNIST SP800-17 B.1 #220000010000000000fbe00a8a1ef8ad72zNIST SP800-17 B.1 #230000008000000000750d079407521363zNIST SP800-17 B.1 #24000000400000000064feed9c724c2fafzNIST SP800-17 B.1 #250000002000000000f02b263b328e2b60zNIST SP800-17 B.1 #2600000010000000009d64555a9a10b852zNIST SP800-17 B.1 #270000000800000000d106ff0bed5255d7zNIST SP800-17 B.1 #280000000400000000e1652c6b138c64a5zNIST SP800-17 B.1 #290000000200000000e428581186ec8f46zNIST SP800-17 B.1 #300000000100000000aeb5f5ede22d1a36zNIST SP800-17 B.1 #310000000080000000e943d7568aec0c5czNIST SP800-17 B.1 #320000000040000000df98c8276f54b04bzNIST SP800-17 B.1 #330000000020000000b160e4680f6c696fzNIST SP800-17 B.1 #340000000010000000fa0752b07d9c4ab8zNIST SP800-17 B.1 #350000000008000000ca3a2b036dbc8502zNIST SP800-17 B.1 #3600000000040000005e0905517bb59bcfzNIST SP800-17 B.1 #370000000002000000814eeb3b91d90726zNIST SP800-17 B.1 #3800000000010000004d49db1532919c9fzNIST SP800-17 B.1 #39000000000080000025eb5fc3f8cf0621zNIST SP800-17 B.1 #400000000000400000ab6a20c0620d1c6fzNIST SP800-17 B.1 #41000000000020000079e90dbc98f92ccazNIST SP800-17 B.1 #420000000000100000866ecedd8072bb0ezNIST SP800-17 B.1 #4300000000000800008b54536f2f3e64a8zNIST SP800-17 B.1 #440000000000040000ea51d3975595b86bzNIST SP800-17 B.1 #450000000000020000caffc6ac4542de31zNIST SP800-17 B.1 #4600000000000100008dd45a2ddf90796czNIST SP800-17 B.1 #4700000000000080001029d55e880ec2d0zNIST SP800-17 B.1 #4800000000000040005d86cb23639dbea9zNIST SP800-17 B.1 #4900000000000020001d1ca853ae7c0c5fzNIST SP800-17 B.1 #500000000000001000ce332329248f3228zNIST SP800-17 B.1 #5100000000000008008405d1abe24fb942zNIST SP800-17 B.1 #520000000000000400e643d78090ca4207zNIST SP800-17 B.1 #53000000000000020048221b9937748a23zNIST SP800-17 B.1 #540000000000000100dd7c0bbd61fafd54zNIST SP800-17 B.1 #5500000000000000802fbc291a570db5c4zNIST SP800-17 B.1 #560000000000000040e07c30d7e4e26e12zNIST SP800-17 B.1 #5700000000000000200953e2258e8e90a1zNIST SP800-17 B.1 #5800000000000000105b711bc4ceebf2eezNIST SP800-17 B.1 #590000000000000008cc083f1e6d9e85f6zNIST SP800-17 B.1 #600000000000000004d2fd8867d50d2dfezNIST SP800-17 B.1 #61000000000000000206e7ea22ce92708fzNIST SP800-17 B.1 #620000000000000001166b40b44aba4bd6zNIST SP800-17 B.1 #6395a8d72813daa94d8001010101010101zNIST SP800-17 B.2 #00eec1487dd8c26d54001010101010101zNIST SP800-17 B.2 #17ad16ffb79c459262001010101010101zNIST SP800-17 B.2 #2d3746294ca6a6cf31001010101010101zNIST SP800-17 B.2 #3809f5f873c1fd7610801010101010101zNIST SP800-17 B.2 #4c02faffec989d1fc0401010101010101zNIST SP800-17 B.2 #54615aa1d33e72f100201010101010101zNIST SP800-17 B.2 #62055123350c008580180010101010101zNIST SP800-17 B.2 #7df3b99d6577397c80140010101010101zNIST SP800-17 B.2 #831fe17369b5288c90120010101010101zNIST SP800-17 B.2 #9dfdd3cc64dae16420110010101010101zNIST SP800-17 B.2 #10178c83ce2b399d940108010101010101zNIST SP800-17 B.2 #1150f636324a9b7f800104010101010101zNIST SP800-17 B.2 #12a8468ee3bc18f06d0102010101010101zNIST SP800-17 B.2 #13a2dc9e92fd3cde920101800101010101zNIST SP800-17 B.2 #14cac09f797d0312870101400101010101zNIST SP800-17 B.2 #1590ba680b22aeb5250101200101010101zNIST SP800-17 B.2 #16ce7a24f350e280b60101100101010101zNIST SP800-17 B.2 #17882bff0aa01a0b870101080101010101zNIST SP800-17 B.2 #1825610288924511c20101040101010101zNIST SP800-17 B.2 #19c71516c29c75d1700101020101010101zNIST SP800-17 B.2 #205199c29a52c9f0590101018001010101zNIST SP800-17 B.2 #21c22f0a294a71f29f0101014001010101zNIST SP800-17 B.2 #22ee371483714c02ea0101012001010101zNIST SP800-17 B.2 #23a81fbd448f9e522f0101011001010101zNIST SP800-17 B.2 #244f644c92e192dfed0101010801010101zNIST SP800-17 B.2 #251afa9a66a6df92ae0101010401010101zNIST SP800-17 B.2 #26b3c1cc715cb879d80101010201010101zNIST SP800-17 B.2 #2719d032e64ab0bd8b0101010180010101zNIST SP800-17 B.2 #283cfaa7a7dc8720dc0101010140010101zNIST SP800-17 B.2 #29b7265f7f447ac6f30101010120010101zNIST SP800-17 B.2 #309db73b3c0d163f540101010110010101zNIST SP800-17 B.2 #318181b65babf4a9750101010108010101zNIST SP800-17 B.2 #3293c9b64042eaa2400101010104010101zNIST SP800-17 B.2 #3355705308297055920101010102010101zNIST SP800-17 B.2 #348638809e878787a00101010101800101zNIST SP800-17 B.2 #3541b9a79af79ac2080101010101400101zNIST SP800-17 B.2 #367a9be42f2009a8920101010101200101zNIST SP800-17 B.2 #3729038d56ba6d27450101010101100101zNIST SP800-17 B.2 #385495c6abf1e5df510101010101080101zNIST SP800-17 B.2 #39ae13dbd5614889330101010101040101zNIST SP800-17 B.2 #40024d1ffa8904e3890101010101020101zNIST SP800-17 B.2 #41d1399712f99bf02e0101010101018001zNIST SP800-17 B.2 #4214c1d7c1cffec79e0101010101014001zNIST SP800-17 B.2 #431de5279dae3bed6f0101010101012001zNIST SP800-17 B.2 #44e941a33f855013030101010101011001zNIST SP800-17 B.2 #45da99dbbc9a03f3790101010101010801zNIST SP800-17 B.2 #46b7fc92f91d8e92e90101010101010401zNIST SP800-17 B.2 #47ae8e5caa3ca04e850101010101010201zNIST SP800-17 B.2 #489cc62df43b6eed740101010101010180zNIST SP800-17 B.2 #49d863dbb5c59a91a00101010101010140zNIST SP800-17 B.2 #50a1ab2190545b91d70101010101010120zNIST SP800-17 B.2 #510875041e64c570f70101010101010110zNIST SP800-17 B.2 #525a594528bebef1cc0101010101010108zNIST SP800-17 B.2 #53fcdb3291de21f0c00101010101010104zNIST SP800-17 B.2 #54869efd7f9f265a090101010101010102zNIST SP800-17 B.2 #55c                       e Zd ZdZd Zy)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.
    c                 h   ddl m} ddlm} g }t	        d      g|dd  t        d      D ]]  }|j                  ||   |j                        }|dz  s|j                  ||         g||dz   d  C|j                  ||         g||dz   d  _ | j                   ||d          |t	        d                   y )Nr   DES)b2a_hexu   t¸èÇ;Ê}      u	   -ÛLd$8)Crypto.Cipherr   binasciir   brangenewMODE_ECBencryptdecryptassertEqual)selfr   r   Xics         `/var/www/html/bid_assistant/venv/lib/python3.12/site-packages/Crypto/SelfTest/Cipher/test_DES.pyrunTestzRonRivestTest.runTest8  s    %$567!"r 	,A!S\\*AaC99QqT?+!A#$99QqT?+!A#$	, 	2A89:	<    N)__name__
__module____qualname____doc__r   r  r  r   r   "  s    *<r  r   c                 N    ddl m} ddlm}  ||dt              t               gz   S )Nr   r   )make_block_testsr   )r  r   commonr  	test_datar   )configr   r  s      r  	get_testsr  I  s!    !'C	2mo5FFFr  __main__c                  <    t        j                  t                     S )N)unittest	TestSuiter  r  r  r  <lambda>r   P  s    H&&y{3 r  suite)defaultTest)r  __revision__r  r   Crypto.Util.py3compatr  SP800_17_B1_KEYSP800_17_B2_PTr  TestCaser   r  r  r!  mainr  r  r  <module>r)     s  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%% %<N  G
 z3EHMMg& r  