
    Eh                         d Z dZddlZej                  d   dk(  rej                  d   dk(  rddl ddl ddlZ G d dej                        Zi fd	Z	e
d
k(  rd Z ej                  d       yy)z"Self-tests for Crypto.Util.Counterz$Id$    N      )*c                   Z    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d Zy)CounterTestsc                     ddl ma y )Nr   )Counter)Crypto.Utilr	   )selfs    b/var/www/html/bid_assistant/venv/lib/python3.12/site-packages/Crypto/SelfTest/Util/test_Counter.pysetUpzCounterTests.setUp%   s    '    c                    t         j                  d      }| j                  |j                  d       t         j                  dd      }| j                  |j                  d       t         j                  dd      }| j                  |j                  d       t         j                  ddd      }| j                  |j                  d       y)zBig endian, shortcut enabled   TFlittle_endiandisable_shortcutr   r   Nr	   newassertEqual__PCT_CTR_SHORTCUT__r   cs     r   test_BE_shortcutzCounterTests.test_BE_shortcut)   s    KK//5KK5K1//5KKeK4//5KK55KI//5r   c                     t         j                  dd      }| j                  |j                  d       t         j                  ddd      }| j                  |j                  d       y)zLittle endian, shortcut enabledr   Tr   Fr   Nr   r   s     r   test_LE_shortcutzCounterTests.test_LE_shortcut4   sT    KK4K0//5KK4%KH//5r   c                     t         j                  dd      }| j                  t        t        |d       t         j                  ddd      }| j                  t        t        |d       y)zBig endian, shortcut disabledr   Tr   r   Fr   Nr	   r   assertRaisesAttributeErrorgetattrr   s     r   test_BE_no_shortcutz CounterTests.test_BE_no_shortcut;   sR    KKdK3.'16LMKK54KH.'16LMr   c                 l    t         j                  ddd      }| j                  t        t        |d       y)z Little endian, shortcut disabledr   Tr   r   Nr    r   s     r   test_LE_no_shortcutz CounterTests.test_LE_no_shortcutB   s+    KK4$KG.'16LMr   c                 h   t         j                  d      }| j                  d|j                                | j                  t	        d       |              | j                  d|j                                | j                  t	        d       |              t        dd      D ]N  }| j                  ||j                                | j                  t	        d      t        |      z    |              P | j                  d|j                                | j                  t	        d	       |              y
)z128-bit, Big endian, defaultsr   r   z               r   z                                    z               Nr	   r   r   
next_valuebxrangebchrr   r   is      r   test_BE_defaultszCounterTests.test_BE_defaultsG   s    KKALLN+]^`a`cdALLN+]^`a`cd3 	mAQ/Q]^_cde_ffhihkl	m 	alln-]^`a`cdr   c                 l   t         j                  dd      }| j                  d|j                                | j                  t	        d       |              | j                  d|j                                | j                  t	        d       |              t        dd	      D ]N  }| j                  ||j                                | j                  t        |      t	        d
      z    |              P | j                  d	|j                                | j                  t	        d       |              y)z 128-bit, Little endian, defaultsr   Tr   r   z               r   z               r(   r)   r*   z               Nr+   r0   s      r   test_LE_defaultszCounterTests.test_LE_defaultsT   s    KK4K0ALLN+]^`a`cdALLN+]^`a`cd3 	mAQ/T!WQ'e%ffhihkl	m 	alln-]^`a`cdr   c                    t         j                  d      }t        dd      D ]B  }| j                  ||j	                                | j                  t        |       |              D | j                  t        |j                         | j                  t        |       | j                  t        |j                         | j                  t        |       y)z8-bit, Big endian, wraparound   r   r)   Nr	   r   r.   r   r,   r/   r!   OverflowErrorr0   s      r   test_BE8_wraparoundz CounterTests.test_BE8_wraparounda   s    KKN3 	+AQ/T!Wac*	+ 	-6-+-6-+r   c                    t         j                  dd      }t        dd      D ]B  }| j                  ||j	                                | j                  t        |       |              D | j                  t        |j                         | j                  t        |       | j                  t        |j                         | j                  t        |       y)z 8-bit, Little endian, wraparoundr6   Tr   r   r)   Nr7   r0   s      r   test_LE8_wraparoundz CounterTests.test_LE8_wraparoundl   s    KKK.3 	+AQ/T!Wac*	+ 	-6-+-6-+r   c                    t         j                  dd      }t        dd      D ]B  }| j                  ||j	                                | j                  t        |       |              D | j                  d|j	                                | j                  t        d       |              | j                  d|j	                                y)	z88-bit, Big endian, wraparound with allow_wraparound=Truer6   T)allow_wraparoundr   r)   r    Nr	   r   r.   r   r,   r/   r-   r0   s      r   test_BE8_wraparound_allowedz(CounterTests.test_BE8_wraparound_allowedw   s    KKDK13 	+AQ/T!Wac*	+ 	ALLN+6AC(ALLN+r   c                    t         j                  ddd      }t        dd      D ]B  }| j                  ||j	                                | j                  t        |       |              D | j                  d|j	                                | j                  t        d       |              | j                  d|j	                                y)	z;8-bit, Little endian, wraparound with allow_wraparound=Truer6   T)r   r=   r   r)   r   r>   Nr?   r0   s      r   test_LE8_wraparound_allowedz(CounterTests.test_LE8_wraparound_allowed   s    KKKE3 	+AQ/T!Wac*	+ 	ALLN+6AC(ALLN+r   c                 @   t         j                  d      }t        dd      D ]^  }| j                  d|j                         | j                  ||j                                | j                  t        |       |              ` | j                  d|j                         y)z"8-bit, Big endian, carry attributer6   r   r)   r   Nr	   r   r.   r   carryr,   r/   r0   s      r   test_BE8_carryzCounterTests.test_BE8_carry   sz    KKN3 	+AQ(Q/T!Wac*	+ 	AGG$r   c                 D   t         j                  dd      }t        dd      D ]^  }| j                  d|j                         | j                  ||j                                | j                  t        |       |              ` | j                  d|j                         y)z%8-bit, Little endian, carry attributer6   Tr   r   r)   r   NrD   r0   s      r   test_LE8_carryzCounterTests.test_LE8_carry   s    KKK.3 	+AQ(Q/T!Wac*	+ 	AGG$r   N)__name__
__module____qualname__r   r   r   r$   r&   r2   r4   r9   r;   r@   rB   rF   rH    r   r   r   r   $   sG    (	66NN
ee	,	,,,%%r   r   c                 &    ddl m}  |t              S )Nr   )list_test_cases)Crypto.SelfTest.st_commonrN   r   )configrN   s     r   	get_testsrQ      s    9<((r   __main__c                  <    t        j                  t                     S )N)unittest	TestSuiterQ   rL   r   r   <lambda>rV      s    H&&y{3 r   suite)defaultTest)__doc____revision__sysversion_infoCrypto.Util.py21compatCrypto.Util.py3compatrT   TestCaser   rQ   rI   rW   mainrL   r   r   <module>ra      s   2 ) 
A! 0 0 3q 8( # w%8$$ w%r  ) z3EHMMg& r   