ó
j4Vdc           @   s²   d  Z  d Z d d l Z e j d d k rK e j d d k rK d d l Tn  d d l Td d l Z d e j f d	 „  ƒ  YZ i  d
 „ Z	 e
 d k r® d „  Z e j d d ƒ n  d S(   s"   Self-tests for Crypto.Util.Counters   $Id$iÿÿÿÿNi    i   i   (   t   *t   CounterTestsc           B   s}   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z d
 „  Z d „  Z d „  Z RS(   c         C   s   d d l  m a d  S(   Niÿÿÿÿ(   t   Counter(   t   Crypto.UtilR   (   t   self(    (    so   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/Crypto/SelfTest/Util/test_Counter.pyt   setUp%   s    c         C   s¤   t  j d ƒ } |  j | j t ƒ t  j d d t ƒ} |  j | j t ƒ t  j d d t ƒ} |  j | j t ƒ t  j d d t d t ƒ} |  j | j t ƒ d S(   s   Big endian, shortcut enabledi€   t   little_endiant   disable_shortcutN(   R   t   newt   assertEqualt   __PCT_CTR_SHORTCUT__t   Truet   False(   R   t   c(    (    so   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/Crypto/SelfTest/Util/test_Counter.pyt   test_BE_shortcut)   s    c         C   sZ   t  j d d t ƒ} |  j | j t ƒ t  j d d t d t ƒ} |  j | j t ƒ d S(   s   Little endian, shortcut enabledi€   R   R   N(   R   R   R   R	   R
   R   (   R   R   (    (    so   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/Crypto/SelfTest/Util/test_Counter.pyt   test_LE_shortcut4   s    c         C   s`   t  j d d t ƒ} |  j t t | d ƒ t  j d d t d t ƒ} |  j t t | d ƒ d S(   s   Big endian, shortcut disabledi€   R   R
   R   N(   R   R   R   t   assertRaisest   AttributeErrort   getattrR   (   R   R   (    (    so   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/Crypto/SelfTest/Util/test_Counter.pyt   test_BE_no_shortcut;   s    c         C   s5   t  j d d t d t ƒ} |  j t t | d ƒ d S(   s    Little endian, shortcut disabledi€   R   R   R
   N(   R   R   R   R   R   R   (   R   R   (    (    so   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/Crypto/SelfTest/Util/test_Counter.pyt   test_LE_no_shortcutB   s    c         C   só   t  j d ƒ } |  j d | j ƒ  ƒ |  j t d ƒ | ƒ  ƒ |  j d | j ƒ  ƒ |  j t d ƒ | ƒ  ƒ xP t d d ƒ D]? } |  j | | j ƒ  ƒ |  j t d ƒ t | ƒ | ƒ  ƒ q} W|  j d | j ƒ  ƒ |  j t d	 ƒ | ƒ  ƒ d
 S(   s   128-bit, Big endian, defaultsi€   i   s                  i   s                  i   i   s                  s                  N(   R   R   R	   t
   next_valuet   bt   xranget   bchr(   R   R   t   i(    (    so   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/Crypto/SelfTest/Util/test_Counter.pyt   test_BE_defaultsG   s    'c         C   sù   t  j d d t ƒ} |  j d | j ƒ  ƒ |  j t d ƒ | ƒ  ƒ |  j d | j ƒ  ƒ |  j t d ƒ | ƒ  ƒ xP t d d ƒ D]? } |  j | | j ƒ  ƒ |  j t | ƒ t d	 ƒ | ƒ  ƒ qƒ W|  j d | j ƒ  ƒ |  j t d
 ƒ | ƒ  ƒ d S(   s    128-bit, Little endian, defaultsi€   R   i   s                  i   s                  i   i   s                  s                  N(   R   R   R   R	   R   R   R   R   (   R   R   R   (    (    so   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/Crypto/SelfTest/Util/test_Counter.pyt   test_LE_defaultsT   s    'c         C   s¢   t  j d ƒ } xF t d d ƒ D]5 } |  j | | j ƒ  ƒ |  j t | ƒ | ƒ  ƒ q W|  j t | j ƒ |  j t | ƒ |  j t | j ƒ |  j t | ƒ d S(   s   8-bit, Big endian, wraparoundi   i   i   N(   R   R   R   R	   R   R   R   t   OverflowError(   R   R   R   (    (    so   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/Crypto/SelfTest/Util/test_Counter.pyt   test_BE8_wraparounda   s    c         C   s¨   t  j d d t ƒ} xF t d d ƒ D]5 } |  j | | j ƒ  ƒ |  j t | ƒ | ƒ  ƒ q% W|  j t | j ƒ |  j t | ƒ |  j t | j ƒ |  j t | ƒ d S(   s    8-bit, Little endian, wraparoundi   R   i   i   N(	   R   R   R   R   R	   R   R   R   R   (   R   R   R   (    (    so   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/Crypto/SelfTest/Util/test_Counter.pyt   test_LE8_wraparoundl   s    c         C   s§   t  j d d t ƒ} xF t d d ƒ D]5 } |  j | | j ƒ  ƒ |  j t | ƒ | ƒ  ƒ q% W|  j d | j ƒ  ƒ |  j t d ƒ | ƒ  ƒ |  j d | j ƒ  ƒ d S(   s8   8-bit, Big endian, wraparound with allow_wraparound=Truei   t   allow_wraparoundi   i   i    s    N(   R   R   R   R   R	   R   R   R   (   R   R   R   (    (    so   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/Crypto/SelfTest/Util/test_Counter.pyt   test_BE8_wraparound_allowedw   s    c         C   s­   t  j d d t d t ƒ} xF t d d ƒ D]5 } |  j | | j ƒ  ƒ |  j t | ƒ | ƒ  ƒ q+ W|  j d | j ƒ  ƒ |  j t d ƒ | ƒ  ƒ |  j d | j ƒ  ƒ d S(	   s;   8-bit, Little endian, wraparound with allow_wraparound=Truei   R   R   i   i   i    s    N(   R   R   R   R   R	   R   R   R   (   R   R   R   (    (    so   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/Crypto/SelfTest/Util/test_Counter.pyt   test_LE8_wraparound_allowed   s    c         C   s‚   t  j d ƒ } xY t d d ƒ D]H } |  j d | j ƒ |  j | | j ƒ  ƒ |  j t | ƒ | ƒ  ƒ q W|  j d | j ƒ d S(   s"   8-bit, Big endian, carry attributei   i   i   i    N(   R   R   R   R	   t   carryR   R   (   R   R   R   (    (    so   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/Crypto/SelfTest/Util/test_Counter.pyt   test_BE8_carry‹   s    c         C   sˆ   t  j d d t ƒ} xY t d d ƒ D]H } |  j d | j ƒ |  j | | j ƒ  ƒ |  j t | ƒ | ƒ  ƒ q% W|  j d | j ƒ d S(   s%   8-bit, Little endian, carry attributei   R   i   i   i    N(   R   R   R   R   R	   R"   R   R   (   R   R   R   (    (    so   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/Crypto/SelfTest/Util/test_Counter.pyt   test_LE8_carry”   s    (   t   __name__t
   __module__R   R   R   R   R   R   R   R   R   R    R!   R#   R$   (    (    (    so   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/Crypto/SelfTest/Util/test_Counter.pyR   $   s   										
	
		c         C   s   d d l  m } | t ƒ S(   Niÿÿÿÿ(   t   list_test_cases(   t   Crypto.SelfTest.st_commonR'   R   (   t   configR'   (    (    so   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/Crypto/SelfTest/Util/test_Counter.pyt	   get_tests   s    t   __main__c           C   s   t  j t ƒ  ƒ S(   N(   t   unittestt	   TestSuiteR*   (    (    (    so   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/Crypto/SelfTest/Util/test_Counter.pyt   <lambda>¢   t    t   defaultTestt   suite(   t   __doc__t   __revision__t   syst   version_infot   Crypto.Util.py21compatt   Crypto.Util.py3compatR,   t   TestCaseR   R*   R%   R1   t   main(    (    (    so   /var/www/html/phendo-backend/phendo_python/env/lib/python2.7/site-packages/Crypto/SelfTest/Util/test_Counter.pyt   <module>   s   &
y	