403Webshell
Server IP : 35.80.110.71  /  Your IP : 216.73.216.221
Web Server : Apache/2.4.58 (Ubuntu)
System : Linux ip-172-31-21-44 6.17.0-1019-aws #19~24.04.1-Ubuntu SMP Tue Jun 23 18:53:06 UTC 2026 x86_64
User : ubuntu ( 1000)
PHP Version : 8.3.31
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /lib/python3/dist-packages/Cryptodome/SelfTest/Math/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3/dist-packages/Cryptodome/SelfTest/Math/__pycache__/test_Numbers.cpython-312.pyc
�

��e1|����dZddlZddlZddlmZddl�ddlmZGd�dej�Z	Gd�d	e	�Z
Gd
�dej�Zifd�Ze
d
k(rd�Zejd��yy)zSelf-test for Math.Numbers�N)�list_test_cases)�*)�
IntegerNativec�J�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�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.d-�Z/d.�Z0d/�Z1d0�Z2d1�Z3d2�Z4d3�Z5d4�Z6d5�Z7y6)7�TestIntegerBasec��td��)NzTo be implemented)�NotImplementedError��selfs �G/usr/lib/python3/dist-packages/Cryptodome/SelfTest/Math/test_Numbers.py�setUpzTestIntegerBase.setUp0s��!�"5�6�6�c�.�t|j|�S�N)�map�Integer)r�args  r�IntegerszTestIntegerBase.Integers3s���4�<�<��%�%rc��|j}|d�}||�}|d�}|jt|d�|d�}|d�}|d�}|d�}|d�}	|j||�|j|d�|j||�|j|d�|j|d�|j|d�|j|d�|j|d�|j|	d�|j	||k(�||�}|j||�|j	|d	�dk(�y)
N����g�?ld(	l����d(	�l��l����r)r�assertRaises�
ValueError�assertEqual�assertFalse)
rr�v1�v2�v3�v4�v5�v6�v7�v8s
          r�test_init_and_equalityz&TestIntegerBase.test_init_and_equality6s>���,�,��
�R�[��
�R�[��
�R�[�����*�g�s�3�
�V�_��
�W�
��
�V�_��
�Z�
 ��
�'�
(������R� �����R� �����R� �����R� �����X�&�����Y�'�����V�$�����Z�(�����/�0�����r��"��R�[������R� �������t�+�,rc��|jdddz�\}}|jt|�d�|jt|�ddz�y)Ni�����)rr�int�rrrs   r�test_conversion_to_intz&TestIntegerBase.test_conversion_to_intWsF�����s�A��I�.���B�����R��#�&�����R��!�t�)�,rc���|jddddz�\}}}|j|dk(�|j|dk(�|j|dk(�|j|ddzk(�y)Nri����r'r(��r�
assertTruer�rrrrs    r�test_equality_with_intsz'TestIntegerBase.test_equality_with_ints\sd���]�]�2�s�A��I�6�
��B������b��!�����c�	�"�����r��"�����a�4�i��(rc�$�|jdddddz�\}}}}|jt|�dk(�|jt|�dk(�|jt|�dk(�|jt|�d	k(�y)
N�ri��r'r(�20�0z-20�.10715086071862673209484250490600018105614048117055336074437503883703510511249361224931983788156958581275946729175531468251871452856923140435984577574698574803934567774824230985421074605062371141877954182153046474983581941267398767559165543946077062914571196477686542167660429831652624386837205668069376)rr/�str�rrrrr s     r�test_conversion_to_strz&TestIntegerBase.test_conversion_to_strcs~�����r�1�c�1��9�=���B��B�����B��4��(�����B��3��'�����B��5�(�)�����B��$T�T�	Urc��|jdddz�\}}|jt|�d�|jt|�d�y)N���r'�PzInteger(-1)z"Integer(1208925819614629174706176))rr�reprr*s   r�	test_reprzTestIntegerBase.test_reprjsC�����r�1�b�5�)���B�����b��=�1�����b��#G�Hrc��|j}|d�}|jtd�|j��|d�}|jtd�|j��|jtd�|jd��|j	t
|jd�|jtd�|jd	�
��|jtd�|jdd	�
��|d�}|j	t
|j�|j	t
|jd
�
�y)Nr�i��uÿþuÿþ��uþÿ�little��	byteorderuþÿ����bittle)rr�b�to_bytesrr)rrrrrs     r�test_conversion_to_bytesz(TestIntegerBase.test_conversion_to_bytesos����,�,��
�T�]������6��B�K�K�M�2�
�V�_������:�����
�6�����>�*�B�K�K��N�;����*�b�k�k�1�5�����:�����h��(G�H�����>�*�B�K�K��X�K�,N�O�
�S�\�����*�b�k�k�2����*�b�k�k�X��Frc�D�|j}|jd�}|jt||��|j	d|�|jd�}|j	d|�|jd�}|j	d|�|jdd�}|j	d|�|jdd��}|j	d|�|jdd	��}|j	d
|�|jt|jdd�y)
N�rsrBs��r�bigrDrC��	rG)r�
from_bytesr/�
isinstancerrr)rrrrrr r!r"s        r�test_conversion_from_bytesz*TestIntegerBase.test_conversion_from_bytes�s���,�,��
�
�
��
(�����
�2�w�/�0�����B��
�
�
��
,������B��
�
�
��
,�������$�
�
�
��U�
3������B��
�
�
��u�
�
=������B��
�
�
��x�
�
@�������$����*�g�&8�&8�'�8�Lrc�l�|jdddd�\}}}}|j||k7�|j|dk7�|j||k7�|j|dk7�|j||k7�|j||k7�|j|jd�dk7�y)N�Y�Z���r)rr/rrr8s     r�test_inequalityzTestIntegerBase.test_inequality�s������r�2�r�2�6���B��B�����b��!�����b��!�����r��"�����r��"�����b��!�����b��!�������Q��4�/�0rc�z�|jddddd�\}}}}}|j||k�|j|dk�|j||k�|j|dk�|j||k�|j||k�|j||k�|j||k�y�N�
�rV�r.�rrrrr r!s      r�test_less_thanzTestIntegerBase.test_less_than�s���!�]�]�2�r�2�r�7�C���B��B������R�� �����R�� �����b��!�����b��!�����R�� �����b��!�����R�� �����b��!rc�z�|jddddd�\}}}}}|j||k�|j|dk�|j||k�|j|dk�|j||k�|j||k�|j||k�|j||k�y)NrZr[���r\r.r]s      r�test_less_than_or_equalz'TestIntegerBase.test_less_than_or_equal�s���!�]�]�2�r�2�r�7�C���B��B������b��!�����b��!�����b��!�����b��!�����b��!�����r��"�����b��!�����r��"rc��|jddddd�\}}}}}|j||kD�|j|dkD�|j||kD�|j||kD�|j|dkD�|j||kD�|j||kD�|j||kD�|j||kD�yrYr.r]s      r�test_more_thanzTestIntegerBase.test_more_than�s���!�]�]�2�r�2�r�7�C���B��B������R�� �����R�� �����b��!�����b��!�����b��!�����R�� �����b��!�����R�� �����b��!rc�&�|jdddd�\}}}}|j||k\�|j|dk\�|j||k\�|j||k\�|j|dk\�|j||k\�y)NrZr[r`r.r8s     r�test_more_than_or_equalz'TestIntegerBase.test_more_than_or_equal�s������r�2�r�2�6���B��B�����b��!�����b��!�����b��!�����b��!�����b��!�����r��"rc�&�|jdddd�\}}}}|j|�|jt|��|j|�|jt|��|j|�|j|�y)Nr�
rr\)rr�boolr/r8s     r�	test_boolzTestIntegerBase.test_bool�sr�����q�"�b�'�:���B��B����������b��"����������R��!����������rc�@�|jddzdddddz�\}}}}}|j|j��|j|j��|j|j��|j|j��y)NrA�d���r)rr/�is_negativerr]s      r�test_is_negativez TestIntegerBase.test_is_negative�s}��!�]�]�A��H�9�b�!�Q��3��G���B��B��������(�)�������(�)�������)�*�������)�*rc�T�|jddd�\}}}|jt||z|j��|j	||zd�|j	|dzd�|j	||zd�|j	|dzd�|j	|dzd�y)N�rU����arr\i�rr/rQrrr0s    r�
test_additionzTestIntegerBase.test_addition�s����]�]�1�b�"�-�
��B�����
�2��7�D�L�L�9�:�����b��"�%�����b��"�%�����b��!�$�����r��A�&�����g��{�3rc�T�|jddd�\}}}|jt||z
|j��|j	||z
d�|j	|dz
d�|j	||z
d�|j	|dz
d�|j	|dz
d�y)	NrprUrq�Srrr[r\i���rsr0s    r�test_subtractionz TestIntegerBase.test_subtraction�s����]�]�1�b�"�-�
��B�����
�2��7�D�L�L�9�:�����b��"�%�����a���$�����b��"�%�����r��B�'�����g��{�3rc�.�|jdddd�\}}}}|jt||z|j��|j	||zd�|j	|dzd�|j	|dzd�|j	|dzd�y)N�����r\r3rVirsr8s     r�test_multiplicationz#TestIntegerBase.test_multiplication�s������q�!�R��9���B��B����
�2��7�D�L�L�9�:�����b��"�%�����a���$�����b��"�%�����g��}�5rc�j��|jddddz�\�}}|jt�|z|j��|j	|�zd�|j	|dzd�|j	|dzd�|j	|ddzzd�|jt�fd��y)NrA�r'r<rl�Oc����dzS�Nr��rs�r�<lambda>z0TestIntegerBase.test_floor_div.<locals>.<lambda>s���R�1�W�r)rr/rQrrr�ZeroDivisionError�rrrrs   @r�test_floor_divzTestIntegerBase.test_floor_divs�����]�]�1�a��b��1�
��B�����
�2��8�T�\�\�:�;�����r��1�%�����q��!�$�����r��2�&�����q�B�w���*����+�_�=rc���|jddd�\�}}|jt�|z|j��|j	�|zd�|j	�dzd�|j	|dzd�|j	�dzd�|jt�fd��|jt�fd��y)	Nrrzr`rArBr\c����dzSr�r�r�s�rr�z0TestIntegerBase.test_remainder.<locals>.<lambda>s���R�!�V�rc����dzS)N���r�r�s�rr�z0TestIntegerBase.test_remainder.<locals>.<lambda>s���b�2�g�r)rr/rQrrrr�rr�s   @r�test_remainderzTestIntegerBase.test_remainder	s�����]�]�2�q�"�-�
��B�����
�2��7�D�L�L�9�:�����b��!�$�����a���#�����a���#�����g��r�*����+�^�<����*�o�6rc���|jddd�\}}}|jt||z|j��|j	||zd�|j	t||�d�|j	|dzd�|j	t|d�d�|j	|dzd�|j	|dzd�|j
tt
|d�y)NryrAr{�@r'rVrl)rr/rQrr�powrrr0s    r�test_simple_exponentiationz*TestIntegerBase.test_simple_exponentiations����]�]�1�a��,�
��B�����
�2��8�T�\�\�:�;�����r��2�&�����R���b�)�����q��"�%�����R���R�(�����q��!�$�����q��"�%����*�c�2�r�2rc	���|jddd�\}}}|jtt|||�|j��|jt|||�d�|jt|d|�d�|jt||d�d�|jt|dd�d�|jt|dd�d�|jt|dddz�d�|jt|ddzd	�d
�|j
tt|dd�|j
tt|dd�|j
tt|dd
�y)Nrrz�rprrBr'r<i�\iEr`rlr~)	rr/rQr�rrrr�rr0s    r�test_modular_exponentiationz+TestIntegerBase.test_modular_exponentiation s.���]�]�2�q�"�-�
��B�����
�3�r�2�r�?�D�L�L�A�B�����R��R��!�,�����R��R��!�,�����R��R��!�,�����R��R��!�,�����R��R��!�,�����R��Q�"�W�-�r�2�����R��b��5�1�5�9����+�S�"�a��;����*�c�2�q�"�5����*�c�2�r�1�5rc���|jd�}|jd�|j|d�|jd�}|jdd�|j|d�y)Nryr'��rB)r�inplace_powr�rrs  r�test_inplace_exponentiationz+TestIntegerBase.test_inplace_exponentiation0sV��
�\�\�!�_��
���q������R� �
�\�\�!�_��
���q�"������Q�rc�b�|jddzdddddz�\}}}}}|jt|�ddz�|jt|�d�|jt|�d�|jt|�d�|jt|�ddz�y)Nr'rkr{r)rr�absr]s      r�test_abszTestIntegerBase.test_abs9s���!�]�]�A��H�9�b�!�Q��S��I���B��B������R��!�s�(�+�����R��!�$�����R��!�$�����R��!�$�����R��!�s�(�+rc�B�|jdddddz�\}}}}|jt|j�|j	|j�d�|j	|j�d�|j	|j�ddz�y)Nr{r�1rgrkrp�2)rrr�sqrtrr8s     r�	test_sqrtzTestIntegerBase.test_sqrtAs|�����r�1�b�"�c�'�:���B��B����*�b�g�g�.��������A�&��������A�&��������B��F�+rc�<�|jt|jd�jd�|jt|jd�jd�|jd�jd�dk(sJ�|jd�jd�dvsJ�dD]F}t	d|�D]5}|dz|z}|j|�j|�}||||z
fvr�5J��H|jt|jd�jd�|jt|jd	�jd
�|jd�jd�dvsJ�|jd
�jd�dvsJ�y)Nrzrr;rB)rBry)�rZr��r���%�)�+�/�5r'r�ryrgr�)ryrpr�)rrrr��range)r�p�i�square�ress     r�test_sqrt_modulez TestIntegerBase.test_sqrt_moduleIsu��	
���*�d�l�l�1�o�&:�&:�A�>����*�d�l�l�1�o�&:�&:�B�?��|�|�A��#�#�A�&�!�+�+�+��|�|�A��#�#�A�&�&�0�0�0�B�	)�A��1�a�[�
)���A������l�l�6�*�/�/��2���q�!�a�%�j�(�(�(�
)�	)�	
���*�d�l�l�1�o�&:�&:�B�?�	
���*�d�l�l�1�o�&:�&:�B�?��|�|�F�#�(�(��,��6�6�6��|�|�F�#�(�(��,��6�6�6rc��|jdd�\}}||z
}|j|d�|dz
}|j|d�|dz
}|j|d�|ddzz
}|j|dddzz�y)	Nrgr3��(r;�'r'r(�rrr*s   r�test_in_place_addz!TestIntegerBase.test_in_place_addds������r�2�&���B�
�b�������R� �
�b�������R� �
�b�������R� �
�a�4�i�������R�!�t�)�^�,rc���|jdd�\}}||z}|j|d�|dz}|j|d�|dz}|j|d�|dz}|j|d	�y)
Nrgr3i����i����rUi�_iʠ��i`y��ij'r�r*s   r�test_in_place_subz!TestIntegerBase.test_in_place_subpsz�����r�2�&���B�
�b�������S�!�
�d�
������R� �
�e�������V�$�
�g�
������U�#rc��|jdd�\}}||z}|j|d�|dz}|j|d�|dz}|j|d�|ddzz}|j|dddzz�y)	NrArzr�r'r�r{i���r(r�r*s   r�test_in_place_mulz!TestIntegerBase.test_in_place_mul|s������q�!�$���B�
�b�������R� �
�a�������R� �
�b�������S�!�
�a�4�i�������S�A��I�.�/rc����jdd�\}}||z}�j|d�|ddzz}�j|d�|dz}�j|d��fd�}�jt|�y)Nr3rp�r'r(rc�2���jd�}|dz}y)N�	r�r)rrs �r�tz0TestIntegerBase.test_in_place_modulus.<locals>.t�s������a��B��!�G�Br)rrrr�)rrrr�s`   r�test_in_place_modulusz%TestIntegerBase.test_in_place_modulus�s~������r�1�%���B�
�b�������Q��
�a�4�i�������Q��
�a�������Q��	�	
���+�Q�/rc��|jddd�\}}}|jt||z|j��|j	||zd�|j	|dzd�|j	||zd�|j	|dzd�|j	|dzd�|j	|ddzdzzd�y)N��r����0��r'r(rsr0s    r�test_andzTestIntegerBase.test_and�s����]�]�4��t�4�
��B�����
�2��7�D�L�L�9�:�����b��$�'�����d��D�)�����b��$�'�����d��D�)�����d��D�)�����q�D�y�4�/�0�$�7rc�<�|jddd�\}}}|jt||z|j��|j	||zd�|j	|dzd�|j	||zd�|j	|ddzzddzdz�y)Nr��r���i�r'r(rsr0s    r�test_orzTestIntegerBase.test_or�s����]�]�4��t�4�
��B�����
�2��7�D�L�L�9�:�����b��$�'�����d��D�)�����b��$�'�����a�4�i���d��T�)9�:rc���|jddd�\�}}|j�dz	��|jt�|z	|j��|j�|z	d�|j�dz	d�|jt�fd��|j�ddzz	d�|j|dz	d	�|j|ddzz	d
�y)Nr�rB��rr~c����dz	S�Nr;r�r�s�rr�z2TestIntegerBase.test_right_shift.<locals>.<lambda>�����b�B�h�rr'r(rVr;�rrr/rQrrrr�s   @r�test_right_shiftz TestIntegerBase.test_right_shift�s�����]�]�4��E�2�
��B������q��"�%����
�2��8�T�\�\�:�;�����r��4�(�����q��$�'����*�&6�7������T�	�*�A�.�����q��%�(������T�	�*�B�/rc����jddd�\}}}|dz}�j|d�|dz}�j|d�||z}�j|d�|dz}�j|d��fd�}�jt|��fd	�}�jd|���fd
�}�jd|��y)Nr�rBr�rr~ryrVc�2���jd�}|dz}y�N�r;r��r rs �r�lz4TestIntegerBase.test_in_place_right_shift.<locals>.l��������d�#�B��2�I�Brc�:���jd�}|ddzz}|S�Nr�r'r(r�r�s �r�m1z5TestIntegerBase.test_in_place_right_shift.<locals>.m1�s$������d�#�B��1��9��B��Irc�:���jd�}|ddzz}|S)Nr;r'r(r�r�s �r�m2z5TestIntegerBase.test_in_place_right_shift.<locals>.m2�s$������b�!�B��1��9��B��Irr;�rrrr)rrrrr�r�r�s`      r�test_in_place_right_shiftz)TestIntegerBase.test_in_place_right_shift�s�����]�]�4��E�2�
��B��
�q�������T�"�
�q�������T�"�
�r�	������T�"�
�q�������U�#�	�	
���*�a�(�	�	
����B�D�!�	�	
����R�T�"rc���|jddd�\�}}|j�dz��|jt�|z|j��|j�|zd�|j�dzd�|j|dzd�|jt�fd��|jt�fd��y)	Nr�rBr�r� ���c����dzSr�r�r�s�rr�z2TestIntegerBase._test_left_shift.<locals>.<lambda>�r�rc����ddzzS)Nr'r(r�r�s�rr�z2TestIntegerBase._test_left_shift.<locals>.<lambda>�s���b�Q�$�Y�.?�rr�r�s   @r�_test_left_shiftz TestIntegerBase._test_left_shift�s�����]�]�4��E�2�
��B������q��"�%����
�2��8�T�\�\�:�;�����r��4�(�����q��$�'�����q��%�(����*�&6�7����*�&?�@rc�X���jddd�\}}}|dz}�j|d�|dz}�j|d�||z}�j|d�|dz}�j|d��fd�}�jt|��fd	�}�jt|�y)
Nr�rBr�rr�r�r�c�2���jd�}|dz}yr�r�r�s �rr�z3TestIntegerBase.test_in_place_left_shift.<locals>.l�r�rc�8���jd�}|ddzz}yr�r�r�s �r�mz3TestIntegerBase.test_in_place_left_shift.<locals>.m�s������d�#�B��1��9��Brr�)rrrrr�r�s`     r�test_in_place_left_shiftz(TestIntegerBase.test_in_place_left_shift�s�����]�]�4��E�2�
��B��
�q�������T�"�
�q�������T�"�
�r�	������T�"�
�q�������U�#�	�	
���*�a�(�	�	
���*�a�(rc��|jddd�\}}}|j|jd�d�|j|jd�d�|j|j|�d�|j|jd�d�|j|jd�d�|jt|jd�|j|jdd	z�d�|jt|jd�|jt|jd�|jt|jd�|jt|jd
�y)NirlrBrr~r�r;r'r(i�)rr�get_bitrrr0s    r�test_get_bitzTestIntegerBase.test_get_bit�s���]�]�5�"�a�0�
��B��������A���*�������A���*�������B���+�������A���*�������A���*����*�b�j�j�"�5�������A��I�.��2����*�b�j�j�"�5����*�b�j�j�!�4����*�b�j�j�!�4����*�b�j�j�(�;rc��|jddddd�\}}}}}|j|j��|j|j��|j|j��|j|j��|j|j��|j|j	��|j|j	��|j|j	��|j|j	��|j|j	��y)Nrryr�r`i��)rr/�is_evenr�is_oddr]s      r�
test_odd_evenzTestIntegerBase.test_odd_even�s���!�]�]�1�a��R��=���B��B������
�
��%�����
�
��%��������&�����
�
��%��������&��������%��������%�����	�	��$��������%�����	�	��$rc�6�|jdddd�\}}}}|j|j�d�|j|j�d�|j|j�d�|jt|j�y)NrrBrNrFr�)rr�size_in_bitsrrr8s     r�test_size_in_bitsz!TestIntegerBase.test_size_in_bits
sw�����q�!�U�C�8���B��B�������*�A�.�������*�A�.�������*�A�.����*�b�o�o�6rc��|jdddddd�\}}}}}}|j|j�d�|j|j�d�|j|j�d�|j|j�d�|j|j�d�|jt|j
�y)	NrrB�i�irr'rA)rr�
size_in_bytesrrr��rrrrr r!r"s       r�test_size_in_bytesz"TestIntegerBase.test_size_in_bytess���!%���q�!�T�5�'�2�!N���B��B��B�����)�)�+�Q�/�����)�)�+�Q�/�����)�)�+�Q�/�����)�)�+�Q�/�����)�)�+�Q�/����*�b�o�o�6rc���|j|jd�j��|j|jd�j��|j|jd�j��|j|jd�j��|j|jd�j��|j|jd�j��|j|jd�j��|j|jd�j��t	d	d
�D]g}|j|j|dzdz�j��|j|j|dz�j���iy)NrrrBr'rAryi�i�rkr()rr�is_perfect_squarer/r�)r�xs  r�test_perfect_squarez#TestIntegerBase.test_perfect_squaresW��������b�)�;�;�=�>�������Q��9�9�;�<�������Q��9�9�;�<�������a��:�:�<�=�������a��:�:�<�=�������Q��9�9�;�<�������U�+�=�=�?�@�������g�.�@�@�B�C��s�D�!�	D�A����T�\�\�!�Q�$�q�&�1�C�C�E�F��O�O�D�L�L��A��.�@�@�B�C�	Drc�"�|jddd�\}}}|jd�|jd�|jddz�|jt|jd�|jt|j|�y)N�i�ryrpr'r<)r�fail_if_divisible_byrrr0s    r�test_fail_if_divisible_byz)TestIntegerBase.test_fail_if_divisible_by)s|���]�]�2�s�A�.�
��B��	����"�
����"�
����R��(�	
���*�b�&=�&=�q�A����*�b�&=�&=�r�Brc�N�|jddd�\}}}|j||�|j|d�|j|d�|j|d�|jd|�|j|d�|jdd�|j|d	�|jdd�|j|d
�|jdddz�|j|d
ddzz�|jddzd�|j|d
ddzz�y)
NryrAr'rgr��rBr{r3�r(��)r�multiply_accumulaterr0s    r�test_multiply_accumulatez(TestIntegerBase.test_multiply_accumulate5s���]�]�1�a��+�
��B��
���r�2�&�����R� �
���r�1�%�����R� �
���q�"�%�����R� �
���q�"�%�����R� �
���r�1�%�����R� �
���q�!�t�)�,�����R�!�t�)�^�,�
���q�D�y�!�,�����R�!�t�)�^�,rc�R�|jdd�\}}|j|�|j|d�|jd�|j|d�|jd�|j|d�|jddz�|j|ddz�y)NrAr�r�r{r'r()r�setrr*s   r�test_setzTestIntegerBase.test_setFs������q�!�$���B�
���r�
�����Q��
���q�	�����Q��
���r�
�����R� �
���q�D�y������Q�$�Y�'rc��|jdddddd�\}}}}}}|jt|j|�|j��|j|j|�d�|j|jd�d�|j|jd�d�|j|jd�d	�|j|jd
�d�|j
t|jd�|j
t|jd�|j
t|jd�|j
t|jd�y)
Nr'rzrlri�ii
rAi���iKS~i�&i�rg)	rr/rQ�inverserrrrr�r�s       r�test_inversezTestIntegerBase.test_inverseQs��!%���q�!�R��F�D�!I���B��B��B����
�2�:�:�b�>�4�<�<�@�A�������B���+�������A���*�������A���*�������H�-�x�8�������D�)�4�0����*�b�j�j�"�5����*�b�j�j�"�5����*�b�j�j�"�5����+�R�Z�Z��;rc�t�|jdd�\}}|j|�|j|d�y)Nr'rzrA)r�inplace_inverserr*s   r�test_inplace_inversez$TestIntegerBase.test_inplace_inverse`s4�����q�!�$���B�
���2������Q�rc���|jdddd�\}}}}|jt|j|�|j��|j|j|�d�|j|jd�d�|j|j|�d�|j|jd�d�|j|jd�d�y)Nr�rgr�r{r'rB)rr/rQ�gcdrrr8s     r�test_gcdzTestIntegerBase.test_gcdfs������q�"�b�"�5���B��B����
�2�6�6�"�:�t�|�|�<�=���������Q�'���������Q�'���������Q�'���������Q�'���������A�&rc�p�|jddddd�\}}}}}|jt|j|�|j��|j|j|�d�|j|jd�d�|j|j|�d�|j|jd�d�|j|jd�d�|j|jd�d�|j|jd�d�y)Nr�rgr�r{rr��f)rr/rQ�lcmrrr]s      r�test_lcmzTestIntegerBase.test_lcmos���!�]�]�1�b�"�b�!�<���B��B�����
�2�6�6�"�:�t�|�|�<�=���������R�(���������R�(���������S�)���������Q�'���������A�&���������A�&���������A�&rc
�t�d}|jj}tdd�D]}|j||d�d��tddd�D]}|j|d|�d��|j	t
|dd�|j	t
|dd�|j	t
|dd�|j	t
|dd�|j	t
|dd�|j	t
|dd	�|j	t
|dd�|j	t
|dd
�|D]�}|j||d|d�|d�|j||j|d�|d�|d�|j||d|j|d��|d���y)N))rrBrB)r��-rB)r~�r;)rzrrB)ibi�r;)ri�&r;)rzl-&r;rBr�r'r�r{r;rryr~)r�
jacobi_symbolr�rrr)r�data�js�k�n�tvs      r�test_jacobi_symbolz"TestIntegerBase.test_jacobi_symbolzs������\�\�
'�
'���q�"��	*�A����R��1�X�q�)�	*��q�"�a��	*�A����R��1�X�q�)�	*�	
���*�b�!�R�0����*�b�!�R�0����*�b�!�Q�/����*�b�!�Q�/����*�b�!�Q�/����*�b�!�Q�/����*�b�!�Q�/����*�b�!�Q�/��	D�B����R��1��r�!�u�-�r�!�u�5����R����R��U� 3�R��U�;�R��U�C����R��1��t�|�|�B�q�E�':�;�R��U�C�	Drc��dgd�fdgd�fdgd�fdgd�fd	gd
�fdgd�fd
gd�fdgd�fdgd�fdgd�fdgd�fdgd�fdgd�fdgd�fg}|jj}|D](\}}|D]\}}|j|||�|�� �*y)NrA)�rBrB�r'r;�rAr�ryrB�rzr;�r�r�rprB�r~r;�r�r�rgrB�r�r;�rr�rZrB�r[r;�r�r�r�rB�r�r;�rr�r�rB�r3r;�rr�rrB�rr;�r-r��rB��r;��r��rB�r�r;�r�rrz)r%r&�rAr;r(�rzr�r�rB�rpr;r,�r�rB�rgr�r�rB�rr;�rZr;�r[rBr3r4r5�rr;r7�r3r�rrB�rr;r;�r-rB�r>r�r@rB�rBr;�rDr;�r�rBrFrp)r%�r'rBrGr(r)�r�r;�rpr�r~rBrK�rgr;rMrNrO�r[r�r�rBr4r5�rrB�r�r;r8r9r:�rrB�r-r;r=r?rX�rDrrZ�r�rBr�)r%r[r'r(�rzrBr*r+r^r-r.rMr0r1rPr3r4�r�rBr6r7�r3rBr9r:rdr<r=rWrArCrZrFr�)r%r&�rArBr(rhr\rJr,rKr_)r�r�rrBrOrPrar4r5rQrcrj�rr;)rrrdrer=rW�rBrBrYrE�r�r;rZ)r%r&rkr(r)r\rJr,rKr.r/rl)rZrrP�r�r;r4rirQrcr8rmr:rdrer=)r@rrnrYrZrgr�)r%r[r'r(rHr*rJr^r-rLr/r0rOr2r3r4rir6r7rRr9rTrdr<rVr?rArYrErFr�)r%r[rGr(r)r\rJr^rKr_r/rNr1r2rar4)r�rrbr7r8rSrTr;rer=rWrXrYrErgr�)r%r&rGr(rhrIr+r,rKr_rMrNrOr2rpr4rirQ)r�rrjrmrTrdrUr=rWrXrCrErgr)r%r&r'r(rhr*r]r,r-r_r/r0rOr`r3r4rir6rcrjr9r:r;r<r=rWrArfrErFr)r%r[rkr(r)rIrJr^rKr_r/rlr1r2rpr4r5rbrcr8rmrT)rrrUr=rWrnrYrZror>)r%r[rkr(rHrIr+r^rKrLrMrlr1rPr3r4rirbr7rRrSr:rdrUrVrWrnrCrZrFrBr�)r%r&rGr(rhrIr+r,rKr_r/rNr1r2rpr4r5rQrcrjrmr:rdrUr=r?rXrC)r�rrg)rrr)rr"rr!�kjr �js       r�test_jacobi_symbol_wikipediaz,TestIntegerBase.test_jacobi_symbol_wikipedia�s*���`�
a�
�b�
c�
�b�
c�
�V�
W�
�e�
f�
�d�
e�
�_�
`�
�f�
g�
�d�
e�
�_�
`�
�d�
e�
�W�
X�
�a�
b�
�e�
f���"�\�\�
'�
'���	.�E�A�r��
.���1�� � ��A�q��1�-�
.�	.rc�`�|jd�\}|jt|�d�y)Nr��0x10)rr�hexr�s  r�test_hexzTestIntegerBase.test_hex�s&���m�m�D�!�������R��&�)rc�:�|jj}|ddd�}|j|d�|ddd�}|j|d�|ddd�}|j|d�|ddd�}|j|d�|ddd�}|j|d�d	d
zdz
}dd
z}dd
z}d}|j|||||��|jt|ddd�|jt
|ddd�|jt
|ddd�y)Nryrzr��r�i�rr-r'irBrZrkr�s@����(y��n�pq���B,��f�)�Z*��r����}�q:�'z�8�%�	��[C�UE2�:rr;)r�_mult_modulo_bytesrrr�r)r�modmultr��modulus�t1�t2�expects       r�test_mult_modulo_bytesz&TestIntegerBase.test_mult_modulo_bytes�s*���,�,�1�1���a��B�������g�&��f�a��$������g�&��a���$������g�&��f�a��$������g�&��a���$������g�&��S�&�1�*��
��W��
��W��H��������R��!9�:����+�W�a��A�>����*�g�q�!�R�8����*�g�q�!�Q�7rN)8�__name__�
__module__�__qualname__r
rr%r+r1r9r>rJrRrWr^rarcrerirnrtrwr|r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rr	rrrrrr#rsrwr�r�rrrr.s��7�&�-�B-�
)�U�I�
G�$M�0	1�
"�
#�"�#��+�4�4�6�>�	7�
3�6�  �,�,�7�6
-�
$�
0�0�8�;�
0�#�2A�)�(<� 
%�7�7�
D�
C�-�"	(�
<� �'�	'�!D�F.�4*�8rrc��eZdZd�Zy)�TestIntegerIntc��t|_yr)rrr
s rr
zTestIntegerInt.setUp�s	��$��rN�r�r�r�r
r�rrr�r��s��%rr�c�$�eZdZd�Zd�Zd�Zd�Zy)�testIntegerRandomc�P�td�D]@}tjd��}|j|dk�|j|dk\��Btdd�D]I}tj|��}|j|d|d	z
zk�|j|d|zk\��Ky)
Nr(r~)�
exact_bits�rNr\�r'rB)r�r�randomr)r�_�a�
bits_values    r�test_random_exact_bitsz(testIntegerRandom.test_random_exact_bits�s����t��	'�A��$�$��2�A����Q��W�%����Q�#�X�&�	'�
 ��h�/�	1�J��$�$�
�;�A����Q��Z�!�^�!4�4�5����Q�!�Z�-�/�0�	1rc�,�d}td�D]5}tjd��}|xs|dk}|j|dk\��7|j	|�tdd�D]/}tj|��}|j|d	|zk\��1y)
NFr(r~)�max_bitsr�rNr\r�r')r�rr�rr/)r�flagr�r�r�s     r�test_random_max_bitsz&testIntegerRandom.test_random_max_bits�s������t��	%�A��$�$�a�0�A��?�1�s�7�D����Q��V�$�	%�	
�������h�/�	1�J��$�$�j�9�A����Q�!�Z�-�/�0�	1rc��Gd�dt�}|�}tjd|��}|j|jd�y)Nc��eZdZd�Zd�Zy)�@testIntegerRandom.test_random_bits_custom_rng.<locals>.CustomRNGc��d|_yr�)�counterr
s r�__init__zItestIntegerRandom.test_random_bits_custom_rng.<locals>.CustomRNG.__init__�s	�� ��rc�H�|xj|z
c_td�|zSr�)r��bchr)r�sizes  r�__call__zItestIntegerRandom.test_random_bits_custom_rng.<locals>.CustomRNG.__call__�s������$���A�w��~�%rN)r�r�r�r�r�r�rr�	CustomRNGr��s��
!�
&rr�r�)r��randfuncry)�objectrr�rr�)rr��
custom_rngr�s    r�test_random_bits_custom_rngz-testIntegerRandom.test_random_bits_custom_rng�s?��	&��	&��[�
�� � �B��D������+�+�Q�/rc�n�tj}td�D]+}|dd��}|jd|cxkxrdknc��-td�D]+}|dd��}|jd|cxkxrdknc��-|j	t
|ddd��|j	t
|dd�	�y)
N��rBr�)�
min_inclusive�
max_inclusive)r��
max_exclusiver'rA)r�r�r�)r�r�)r�random_ranger�r/rr)r�funcr�r�s    r�test_random_rangez#testIntegerRandom.test_random_ranges����)�)���s��	*�A��1�B�7�A��O�O�A��L�b�L�)�	*��s��	)�A��1�B�7�A��O�O�A��K�R�K�(�	)�	
���*�d�!�1�:;�	�	=����*�d�!�1��MrN)r�r�r�r�r�r�r�r�rrr�r��s��
1�1�0�Nrr�c�p���g}|tt�z
}	ddlm�G�fd�dt�}|t|�z
}	ddlm
�G�fd	�d
t�}|t|�z
}|tt�z
}|S#t
tf$rh}tjdk(r tjjd�n+tjjdt|�z�Yd}~��d}~wwxYw#t
tf$r5}tjjdt|�z�Yd}~��d}~wwxYw)Nr��
IntegerGMPc���eZdZ�fd�Zy)�!get_tests.<locals>.TestIntegerGMPc����|_yrr�)rr�s �rr
z'get_tests.<locals>.TestIntegerGMP.setUps
���)��rNr�r�s�r�TestIntegerGMPr�s���
*rr��win32zSkipping GMP tests on Windows
zSkipping GMP tests (%s)
��
IntegerCustomc���eZdZ�fd�Zy)�*get_tests.<locals>.TestIntegerCustomModexpc����|_yrr�)rr�s �rr
z0get_tests.<locals>.TestIntegerCustomModexp.setUp-s
���,��rNr�r�s�r�TestIntegerCustomModexpr�,s���
-rr�z"Skipping custom modexp tests (%s)
)rr��Cryptodome.Math._IntegerGMPr�r�ImportError�OSError�sys�platform�stdout�writer7�Cryptodome.Math._IntegerCustomr�r�)�config�testsr��er�r�r�s     @@r�	get_testsr�s����E�	�_�^�
,�,�E�D�:�	*�_�	*�	���0�0��	J�@�	-�o�	-�	��!8�9�9��
�_�.�
/�/�E��L��%
��!�D��<�<�7�"��J�J���>�?��J�J���8�3�q�6�A�C���	D��
��!�J��
�
���>��Q��G�I�I��J�s/�%A7�%C1�7C.�AC)�)C.�1D5�+D0�0D5�__main__c�<�tjt��Sr)�unittest�	TestSuiter�r�rrr�r�8s��H�&�&�y�{�3�r�suite)�defaultTest)�__doc__r�r��Cryptodome.SelfTest.st_commonr�Cryptodome.Util.py3compat�Cryptodome.Math._IntegerNativer�TestCaserr�r�r�r�r��mainr�rr�<module>r�s}��D!�
��9�'�8�g
8�h�'�'�g
8�T%�_�%�7N��)�)�7N�r��@�z��3�E��H�M�M�g�&�r

Youez - 2016 - github.com/yon3zu
LinuXploit