ó
BwLc           @   s©   d  Z  d Z d d l Z d d l Z d d l Z d d l Z e j d k  rW d „  Z n
 e d Z d e j	 f d „  ƒ  YZ
 d	 e j	 f d
 „  ƒ  YZ d „  Z d „  Z d S(   s&   Self-testing for PyCrypto hash moduless   $Id$iÿÿÿÿNi  c          K   s
   |  j  ƒ  S(   N(   t   copy(   t   kwargs(    (    s?   /usr/lib/python2.7/dist-packages/Crypto/SelfTest/Hash/common.pyt   dict&   s    R   t   HashSelfTestc           B   s#   e  Z d  „  Z d „  Z d „  Z RS(   c         C   s8   t  j j |  ƒ | |  _ | |  _ | |  _ | |  _ d  S(   N(   t   unittestt   TestCaset   __init__t   hashmodt   expectedt   inputt   description(   t   selfR   R
   R   R	   (    (    s?   /usr/lib/python2.7/dist-packages/Crypto/SelfTest/Hash/common.pyR   .   s
    			c         C   s   |  j  S(   N(   R
   (   R   (    (    s?   /usr/lib/python2.7/dist-packages/Crypto/SelfTest/Hash/common.pyt   shortDescription5   s    c         C   sÆ   |  j  j ƒ  } | j |  j ƒ t j | j ƒ  ƒ } | j ƒ  } |  j  j |  j ƒ } | j ƒ  } t j | j ƒ  ƒ } |  j |  j	 | ƒ |  j |  j	 | ƒ |  j |  j	 | ƒ |  j |  j	 | ƒ d  S(   N(
   R   t   newt   updateR	   t   binasciit   b2a_hext   digestt	   hexdigestt   assertEqualR   (   R   t   ht   out1t   out2t   out3t   out4(    (    s?   /usr/lib/python2.7/dist-packages/Crypto/SelfTest/Hash/common.pyt   runTest8   s    (   t   __name__t
   __module__R   R   R   (    (    (    s?   /usr/lib/python2.7/dist-packages/Crypto/SelfTest/Hash/common.pyR   ,   s   		t   MACSelfTestc           B   s#   e  Z d  „  Z d „  Z d „  Z RS(   c         C   sJ   t  j j |  ƒ | |  _ | |  _ | |  _ | |  _ | |  _ | |  _ d  S(   N(	   R   R   R   R   t   expected_dictR	   t   keyt   hashmodsR
   (   R   R   R
   R   R	   R   R   (    (    s?   /usr/lib/python2.7/dist-packages/Crypto/SelfTest/Hash/common.pyR   K   s    					c         C   s   |  j  S(   N(   R
   (   R   (    (    s?   /usr/lib/python2.7/dist-packages/Crypto/SelfTest/Hash/common.pyR   T   s    c         C   s  xx|  j  j ƒ  D]g} |  j | } t j |  j ƒ } t j |  j ƒ } |  j  | } x# t j D] } | j	 | d ƒ } q^ W|  j
 j | d | ƒ} | j | ƒ t j | j ƒ  ƒ } | j ƒ  }	 |  j
 j | | | ƒ } | j ƒ  }
 t j | j ƒ  ƒ } | j ƒ  } | j d ƒ t j | j ƒ  ƒ } |  j | | ƒ |  j | |	 ƒ |  j | |
 ƒ |  j | | ƒ |  j | | ƒ q Wd  S(   Nt    t	   digestmods   blah blah blah(   R   t   keysR   R   t   a2b_hexR   R	   t   stringt
   whitespacet   replaceR   R   R   R   R   R   R    R   (   R   t   hashnameR   R   t   dataR   t   chR   R   R   R   R   t   h2t   out5(    (    s?   /usr/lib/python2.7/dist-packages/Crypto/SelfTest/Hash/common.pyR   W   s,    (   R   R   R   R   R   (    (    (    s?   /usr/lib/python2.7/dist-packages/Crypto/SelfTest/Hash/common.pyR   I   s   			c   
      C   s    g  } x“ t  t | ƒ ƒ D] } | | } t | ƒ d k  rV | \ } } t | ƒ } n | \ } } } d | | d | f }	 | j t |  |	 | | ƒ ƒ q W| S(   Ni   s
   %s #%d: %si   (   t   ranget   lent   reprt   appendR   (
   t   modulet   module_namet	   test_datat   testst   it   rowR   R	   R
   t   name(    (    s?   /usr/lib/python2.7/dist-packages/Crypto/SelfTest/Hash/common.pyt   make_hash_testsw   s    
 c      	   C   s|   g  } xo t  t | ƒ ƒ D][ } | | } | \ } } }	 }
 d | | d |
 f } | j t |  | |	 | | | ƒ ƒ q W| S(   Ns
   %s #%d: %si   (   R,   R-   R/   R   (   R0   R1   R2   R   R3   R4   R5   R   R(   t   resultsR
   R6   (    (    s?   /usr/lib/python2.7/dist-packages/Crypto/SelfTest/Hash/common.pyt   make_mac_tests„   s    
&(   t   __doc__t   __revision__t   sysR   R   R$   t
   hexversionR   t   __builtins__R   R   R   R7   R9   (    (    (    s?   /usr/lib/python2.7/dist-packages/Crypto/SelfTest/Hash/common.pyt   <module>   s   
.	