File: //lib/python3/dist-packages/rsa/__pycache__/common.cpython-312.pyc
�
%
�a� � � � d Z ddlZ G d� de� Zdedefd�Zdedefd �Zded
edefd�Zded
edej eeef fd�Z dededefd�Z
dej e dej e defd�Ze
dk( rddlZ ej � yy)z/Common functionality shared by several modules.� Nc �6 � � e Zd Zddededededdf
� fd�
Z� xZS ) �NotRelativePrimeError�a�b�d�msg�returnNc �b �� t �| � |xs d|||fz � || _ || _ || _ y )Nz.%d and %d are not relatively prime, divider=%i)�super�__init__r r r )�selfr r r r � __class__s ��,/usr/lib/python3/dist-packages/rsa/common.pyr zNotRelativePrimeError.__init__ s: �� �
����\� P�TU�WX�Z[�S\� \�]���������� )� )�__name__�
__module__�__qualname__�int�strr �
__classcell__)r s @r r r s0 �� ��#� �#� �#� �C� �� � r r �numr c �v � | j � S # t $ r}t dt | � z � |�d}~ww xY w)a�
Number of bits needed to represent a integer excluding any prefix
0 bits.
Usage::
>>> bit_size(1023)
10
>>> bit_size(1024)
11
>>> bit_size(1025)
11
:param num:
Integer value. If num is 0, returns 0. Only the absolute value of the
number is considered. Therefore, signed integers will be abs(num)
before the number's bit length is determined.
:returns:
Returns the number of bits in the integer.
z,bit_size(num) only supports integers, not %rN)�
bit_length�AttributeError� TypeError�type)r �exs r �bit_sizer s? � �,\��~�~����� \��F��c��R�S�Y[�[��\�s � � 8�3�8�numberc �8 � | dk( ryt t | � d� S )a�
Returns the number of bytes required to hold a specific long number.
The number of bytes is rounded up.
Usage::
>>> byte_size(1 << 1023)
128
>>> byte_size((1 << 1024) - 1)
128
>>> byte_size(1 << 1024)
129
:param number:
An unsigned integer
:returns:
The number of bytes required to hold a specific long number.
r � � )�ceil_divr )r s r � byte_sizer% 8 s � �( ��{���H�V�$�a�(�(r �divc �2 � t | |� \ }}|r|dz
}|S )av
Returns the ceiling function of a division between `num` and `div`.
Usage::
>>> ceil_div(100, 7)
15
>>> ceil_div(100, 10)
10
>>> ceil_div(1, 4)
1
:param num: Division's numerator, a number
:param div: Division's divisor, a number
:return: Rounded up result of the division between the parameters.
r"