HEX
Server: Apache/2.4.58 (Ubuntu)
System: Linux ip-172-31-18-78 6.17.0-1017-aws #17~24.04.1-Ubuntu SMP Tue May 26 21:09:53 UTC 2026 aarch64
User: ubuntu (1000)
PHP: 8.2.31
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/rsa/__pycache__/randnum.cpython-312.pyc
�

�Cb`�
��h�dZddlZddlZddlmZmZdedefd�Zdedefd�Z	dedefd�Z
d	edefd
�Zy)z(Functions for generating random numbers.�N)�common�	transform�nbits�returnc���t|d�\}}tj|�}|dkDr?ttjd��}|d|z
z}t	j
d|�|z}|S)z�Reads 'nbits' random bits.

    If nbits isn't a whole number of bytes, an extra byte will be appended with
    only the lower bits set.
    �r��B)�divmod�os�urandom�ord�struct�pack)r�nbytes�rbits�
randomdata�randomvalues     �-/usr/lib/python3/dist-packages/rsa/randnum.py�read_random_bitsrsh���5�!�$�M�F�E����F�#�J�
�q�y��"�*�*�Q�-�(����E�	�!���[�[��k�2�Z�?�
���c�\�t|�}tj|�}|d|dz
zz}|S)z3Reads a random integer of approximately nbits bits.r	)rr�	bytes2int)rr�values   r�read_random_intr.s8��"�%�(�J����
�+�E�
�Q�5�1�9�
��E��Lrc�"�t|�}|dzS)zhReads a random odd integer of approximately nbits bits.

    >>> read_random_odd_int(512) & 1
    1
    r	)r)rrs  r�read_random_odd_intr;s��
�E�"�E��1�9�r�maxvaluec��tj|�}d}	t|�}||kr	|S|dzdk(r|r|dz}|dz
}�()z�Returns a random integer x with 1 <= x <= maxvalue

    May take a very long time in specific situations. If maxvalue needs N bits
    to store, the closer maxvalue is to (2 ** N) - 1, the faster this function
    is.
    r�
r	)r�bit_sizer)rr!�triesrs    r�randintr#Hs^�����x�(�H�
�E�
���)���H����L��2�:��?�u�
��M�H�
��
��r)�__doc__rr�rsarr�int�bytesrrrr#�rr�<module>r)sa��/�
�
�!��C��E��*
�3�
�3�
�
�s�
�s�
��c��c�r