← Back
Editing: number.cpython-311.pyc
� 8�tc3v � � � d dl Z d dlZd dlZd dlmZ d dlmZ dZd� Zd� Z dd�Z dd�Zdd�Zd � Z d � Zdd�Zdd�Zdd�Zdd�Zd dlZdd�Zd� Zd dlZdd�Zd� ZdZdS )� N)�Random)� iter_rangec � � |dk rt � � �| dk s|dk rt d� � �t | |� � \ }}| dk r|dk r|dz }|S )zDReturn ceil(n/d), that is, the smallest integer r such that r*d >= nr zNon positive values� )�ZeroDivisionError� ValueError�divmod)�n�d�r�qs �8/usr/lib/python3/dist-packages/Cryptodome/Util/number.py�ceil_divr % si � � �A�v�v��!�!�!� �A���1�q�5�5��.�/�/�/��!�Q�<�<�D�A�q� �Q���Q�!�V�V� �Q����H� c �R � | dk rt d� � �d}| |z r |dz }| |z � |S )z)Returns the size of the number N in bits.r z4Size in bits only avialable for non-negative numbersr )r )�N�bitss r �sizer 2 sI � � �1�u�u��O�P�P�P��D� �t�)� ��� �� �t�)� ��Kr c �� � |�t j } || dz � � }| dz }|dk r6t |d� � � � d|z z }t j d|� � |z }t |� � }|S )a: Return a random number at most N bits long. If :data:`randfunc` is omitted, then :meth:`Random.get_random_bytes` is used. .. deprecated:: 3.0 This function is for internal use only and may be renamed or removed in the future. Use :func:`Cryptodome.Random.random.getrandbits` instead. N� � r r �B)r �get_random_bytes�ord�struct�pack� bytes_to_long)r �randfunc�S�odd_bits� rand_bits�values r �getRandomIntegerr# >