
j4Vdc        |   @   s  d  Z  d Z d d l m Z d d l Td d l Z d|Z d}Z 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 d0 f d1 d2 e d3 f d4 d5 e d6 f d7 d8 e d9 f d: d; e d< f d= d> e d? f d@ dA e dB f dC dD e dE f dF dG e dH f dI dJ e dK f dL dM e dN f dO dP e dQ f dR dS e dT f dU dV e dW f dX dY e dZ f d[ d\ e d] f d^ d_ e d` f da db e dc f dd de e df f dg dh e di f dj dk e dl f dm dn e do f dp dq e dr f ds dt e du f dv dw e dx f dy dz 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 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 d d e d f d d e 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 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*d+d,f e d-d.d/f e d0d1d2f e d3d4d5f e d6d7d8f e d9d:d;f e d<d=d>f e d?d@dAf e dBdCdDf e dEdFdGf e dHdIdJf e dKdLdMf e dNdOdPf e dQdRdSf e dTdUdVf e dWdXdYf e dZd[d\f e d]d^d_f e d`dadbf e dcdddef e dfdgdhf e didjdkf e dldmdnf e dodpdqf e drdsdtf gy Z due j	 f dv    YZ
 i  dw Z e dxk rd d l Z dy  Z e j dzd{ n  d S(  s%   Self-test suite for Crypto.Cipher.DESs   $Id$i(   t   dict(   t   *Nt   01i   t   00t   0000000000000000t   82dcbafbdeab6602t   10316e028c8f3b4as   NIST SP800-17 At   8000000000000000t   95f8a5e5dd31d900s   NIST SP800-17 B.1 #0t   4000000000000000t   dd7f121ca5015619s   NIST SP800-17 B.1 #1t   2000000000000000t   2e8653104f3834eas   NIST SP800-17 B.1 #2t   1000000000000000t   4bd388ff6cd81d4fs   NIST SP800-17 B.1 #3t   0800000000000000t   20b9e767b2fb1456s   NIST SP800-17 B.1 #4t   0400000000000000t   55579380d77138efs   NIST SP800-17 B.1 #5t   0200000000000000t   6cc5defaaf04512fs   NIST SP800-17 B.1 #6t   0100000000000000t   0d9f279ba5d87260s   NIST SP800-17 B.1 #7t   0080000000000000t   d9031b0271bd5a0as   NIST SP800-17 B.1 #8t   0040000000000000t   424250b37c3dd951s   NIST SP800-17 B.1 #9t   0020000000000000t   b8061b7ecd9a21e5s   NIST SP800-17 B.1 #10t   0010000000000000t   f15d0f286b65bd28s   NIST SP800-17 B.1 #11t   0008000000000000t   add0cc8d6e5deba1s   NIST SP800-17 B.1 #12t   0004000000000000t   e6d5f82752ad63d1s   NIST SP800-17 B.1 #13t   0002000000000000t   ecbfe3bd3f591a5es   NIST SP800-17 B.1 #14t   0001000000000000t   f356834379d165cds   NIST SP800-17 B.1 #15t   0000800000000000t   2b9f982f20037fa9s   NIST SP800-17 B.1 #16t   0000400000000000t   889de068a16f0be6s   NIST SP800-17 B.1 #17t   0000200000000000t   e19e275d846a1298s   NIST SP800-17 B.1 #18t   0000100000000000t   329a8ed523d71aecs   NIST SP800-17 B.1 #19t   0000080000000000t   e7fce22557d23c97s   NIST SP800-17 B.1 #20t   0000040000000000t   12a9f5817ff2d65ds   NIST SP800-17 B.1 #21t   0000020000000000t   a484c3ad38dc9c19s   NIST SP800-17 B.1 #22t   0000010000000000t   fbe00a8a1ef8ad72s   NIST SP800-17 B.1 #23t   0000008000000000t   750d079407521363s   NIST SP800-17 B.1 #24t   0000004000000000t   64feed9c724c2fafs   NIST SP800-17 B.1 #25t   0000002000000000t   f02b263b328e2b60s   NIST SP800-17 B.1 #26t   0000001000000000t   9d64555a9a10b852s   NIST SP800-17 B.1 #27t   0000000800000000t   d106ff0bed5255d7s   NIST SP800-17 B.1 #28t   0000000400000000t   e1652c6b138c64a5s   NIST SP800-17 B.1 #29t   0000000200000000t   e428581186ec8f46s   NIST SP800-17 B.1 #30t   0000000100000000t   aeb5f5ede22d1a36s   NIST SP800-17 B.1 #31t   0000000080000000t   e943d7568aec0c5cs   NIST SP800-17 B.1 #32t   0000000040000000t   df98c8276f54b04bs   NIST SP800-17 B.1 #33t   0000000020000000t   b160e4680f6c696fs   NIST SP800-17 B.1 #34t   0000000010000000t   fa0752b07d9c4ab8s   NIST SP800-17 B.1 #35t   0000000008000000t   ca3a2b036dbc8502s   NIST SP800-17 B.1 #36t   0000000004000000t   5e0905517bb59bcfs   NIST SP800-17 B.1 #37t   0000000002000000t   814eeb3b91d90726s   NIST SP800-17 B.1 #38t   0000000001000000t   4d49db1532919c9fs   NIST SP800-17 B.1 #39t   0000000000800000t   25eb5fc3f8cf0621s   NIST SP800-17 B.1 #40t   0000000000400000t   ab6a20c0620d1c6fs   NIST SP800-17 B.1 #41t   0000000000200000t   79e90dbc98f92ccas   NIST SP800-17 B.1 #42t   0000000000100000t   866ecedd8072bb0es   NIST SP800-17 B.1 #43t   0000000000080000t   8b54536f2f3e64a8s   NIST SP800-17 B.1 #44t   0000000000040000t   ea51d3975595b86bs   NIST SP800-17 B.1 #45t   0000000000020000t   caffc6ac4542de31s   NIST SP800-17 B.1 #46t   0000000000010000t   8dd45a2ddf90796cs   NIST SP800-17 B.1 #47t   0000000000008000t   1029d55e880ec2d0s   NIST SP800-17 B.1 #48t   0000000000004000t   5d86cb23639dbea9s   NIST SP800-17 B.1 #49t   0000000000002000t   1d1ca853ae7c0c5fs   NIST SP800-17 B.1 #50t   0000000000001000t   ce332329248f3228s   NIST SP800-17 B.1 #51t   0000000000000800t   8405d1abe24fb942s   NIST SP800-17 B.1 #52t   0000000000000400t   e643d78090ca4207s   NIST SP800-17 B.1 #53t   0000000000000200t   48221b9937748a23s   NIST SP800-17 B.1 #54t   0000000000000100t   dd7c0bbd61fafd54s   NIST SP800-17 B.1 #55t   0000000000000080t   2fbc291a570db5c4s   NIST SP800-17 B.1 #56t   0000000000000040t   e07c30d7e4e26e12s   NIST SP800-17 B.1 #57t   0000000000000020t   0953e2258e8e90a1s   NIST SP800-17 B.1 #58t   0000000000000010t   5b711bc4ceebf2ees   NIST SP800-17 B.1 #59t   0000000000000008t   cc083f1e6d9e85f6s   NIST SP800-17 B.1 #60t   0000000000000004t   d2fd8867d50d2dfes   NIST SP800-17 B.1 #61t   0000000000000002t   06e7ea22ce92708fs   NIST SP800-17 B.1 #62t   0000000000000001t   166b40b44aba4bd6s   NIST SP800-17 B.1 #63t   95a8d72813daa94dt   8001010101010101s   NIST SP800-17 B.2 #0t   0eec1487dd8c26d5t   4001010101010101s   NIST SP800-17 B.2 #1t   7ad16ffb79c45926t   2001010101010101s   NIST SP800-17 B.2 #2t   d3746294ca6a6cf3t   1001010101010101s   NIST SP800-17 B.2 #3t   809f5f873c1fd761t   0801010101010101s   NIST SP800-17 B.2 #4t   c02faffec989d1fct   0401010101010101s   NIST SP800-17 B.2 #5t   4615aa1d33e72f10t   0201010101010101s   NIST SP800-17 B.2 #6t   2055123350c00858t   0180010101010101s   NIST SP800-17 B.2 #7t   df3b99d6577397c8t   0140010101010101s   NIST SP800-17 B.2 #8t   31fe17369b5288c9t   0120010101010101s   NIST SP800-17 B.2 #9t   dfdd3cc64dae1642t   0110010101010101s   NIST SP800-17 B.2 #10t   178c83ce2b399d94t   0108010101010101s   NIST SP800-17 B.2 #11t   50f636324a9b7f80t   0104010101010101s   NIST SP800-17 B.2 #12t   a8468ee3bc18f06dt   0102010101010101s   NIST SP800-17 B.2 #13t   a2dc9e92fd3cde92t   0101800101010101s   NIST SP800-17 B.2 #14t   cac09f797d031287t   0101400101010101s   NIST SP800-17 B.2 #15t   90ba680b22aeb525t   0101200101010101s   NIST SP800-17 B.2 #16t   ce7a24f350e280b6t   0101100101010101s   NIST SP800-17 B.2 #17t   882bff0aa01a0b87t   0101080101010101s   NIST SP800-17 B.2 #18t   25610288924511c2t   0101040101010101s   NIST SP800-17 B.2 #19t   c71516c29c75d170t   0101020101010101s   NIST SP800-17 B.2 #20t   5199c29a52c9f059t   0101018001010101s   NIST SP800-17 B.2 #21t   c22f0a294a71f29ft   0101014001010101s   NIST SP800-17 B.2 #22t   ee371483714c02eat   0101012001010101s   NIST SP800-17 B.2 #23t   a81fbd448f9e522ft   0101011001010101s   NIST SP800-17 B.2 #24t   4f644c92e192dfedt   0101010801010101s   NIST SP800-17 B.2 #25t   1afa9a66a6df92aet   0101010401010101s   NIST SP800-17 B.2 #26t   b3c1cc715cb879d8t   0101010201010101s   NIST SP800-17 B.2 #27t   19d032e64ab0bd8bt   0101010180010101s   NIST SP800-17 B.2 #28t   3cfaa7a7dc8720dct   0101010140010101s   NIST SP800-17 B.2 #29t   b7265f7f447ac6f3t   0101010120010101s   NIST SP800-17 B.2 #30t   9db73b3c0d163f54t   0101010110010101s   NIST SP800-17 B.2 #31t   8181b65babf4a975t   0101010108010101s   NIST SP800-17 B.2 #32t   93c9b64042eaa240t   0101010104010101s   NIST SP800-17 B.2 #33t   5570530829705592t   0101010102010101s   NIST SP800-17 B.2 #34t   8638809e878787a0t   0101010101800101s   NIST SP800-17 B.2 #35t   41b9a79af79ac208t   0101010101400101s   NIST SP800-17 B.2 #36t   7a9be42f2009a892t   0101010101200101s   NIST SP800-17 B.2 #37t   29038d56ba6d2745t   0101010101100101s   NIST SP800-17 B.2 #38t   5495c6abf1e5df51t   0101010101080101s   NIST SP800-17 B.2 #39t   ae13dbd561488933t   0101010101040101s   NIST SP800-17 B.2 #40t   024d1ffa8904e389t   0101010101020101s   NIST SP800-17 B.2 #41t   d1399712f99bf02et   0101010101018001s   NIST SP800-17 B.2 #42t   14c1d7c1cffec79et   0101010101014001s   NIST SP800-17 B.2 #43t   1de5279dae3bed6ft   0101010101012001s   NIST SP800-17 B.2 #44t   e941a33f85501303t   0101010101011001s   NIST SP800-17 B.2 #45t   da99dbbc9a03f379t   0101010101010801s   NIST SP800-17 B.2 #46t   b7fc92f91d8e92e9t   0101010101010401s   NIST SP800-17 B.2 #47t   ae8e5caa3ca04e85t   0101010101010201s   NIST SP800-17 B.2 #48t   9cc62df43b6eed74t   0101010101010180s   NIST SP800-17 B.2 #49t   d863dbb5c59a91a0t   0101010101010140s   NIST SP800-17 B.2 #50t   a1ab2190545b91d7t   0101010101010120s   NIST SP800-17 B.2 #51t   0875041e64c570f7t   0101010101010110s   NIST SP800-17 B.2 #52t   5a594528bebef1cct   0101010101010108s   NIST SP800-17 B.2 #53t   fcdb3291de21f0c0t   0101010101010104s   NIST SP800-17 B.2 #54t   869efd7f9f265a09t   0101010101010102s   NIST SP800-17 B.2 #55t   RonRivestTestc           B   s   e  Z d  Z d   Z RS(   s   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         C   s   d d l  m } d d l m } g  } t d  g | d )xv t d  D]h } | j | | | j  } | d @s | j | |  g | | d )qF | j	 | |  g | | d )qF W|  j
 | | d  | t d    d  S(	   Ni(   t   DES(   t   b2a_hexs   t;}i    i   i   s   -Ld$8(   t   Crypto.CipherR   t   binasciiR   t   bt   ranget   newt   MODE_ECBt   encryptt   decryptt   assertEqual(   t   selfR   R   t   Xt   it   c(    (    sm   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/Crypto/SelfTest/Cipher/test_DES.pyt   runTest8  s    
!"(   t   __name__t
   __module__t   __doc__R  (    (    (    sm   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/Crypto/SelfTest/Cipher/test_DES.pyR   "  s   c         C   s:   d d l  m } d d l m } | | d t  t   g S(   Ni(   R   (   t   make_block_testsR   (   R   R   t   commonR  t	   test_dataR   (   t   configR   R  (    (    sm   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/Crypto/SelfTest/Cipher/test_DES.pyt	   get_testsI  s    t   __main__c           C   s   t  j t    S(   N(   t   unittestt	   TestSuiteR  (    (    (    sm   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/Crypto/SelfTest/Cipher/test_DES.pyt   <lambda>P  t    t   defaultTestt   suitet   0101010101010101R   (   R   R   R   s   NIST SP800-17 A(   R
  t   __revision__R  R    t   Crypto.Util.py3compatR  t   SP800_17_B1_KEYt   SP800_17_B2_PTR  t   TestCaseR   R  R  R  t   main(    (    (    sm   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/Crypto/SelfTest/Cipher/test_DES.pyt   <module>   s  
 																																																																																																																								'	