HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //home/arjun/projects/env/lib/python3.10/site-packages/dns/__pycache__/entropy.cpython-310.pyc
o

!we��@s�UddlZddlZddlZddlZddlZddlmZmZGdd�d�Ze�Z	eee
d<ze��ZWne
y>dZYnwdefdd�Zd	ed
edefdd�ZdS)
�N)�Any�Optionalc@s�eZdZddeefdd�Zdeddfdd�Zdeddfd	d
�Zddd�Zde	fd
d�Z
de	fdd�Zde	fdd�Zde	de	de	fdd�Z
dS)�EntropyPoolN�seedcCsrd|_d|_d|_t��|_t��|_d|_	t
d|j	�|_|dur1|�|�d|_
t��|_dSd|_
d|_dS)Nr��TF)�
pool_index�digest�	next_byte�	threading�Lock�lock�hashlib�sha1�hash�hash_len�	bytearray�pool�_stir�seeded�os�getpid�seed_pid)�selfr�r�D/home/arjun/projects/env/lib/python3.10/site-packages/dns/entropy.py�__init__ s



zEntropyPool.__init__�entropy�returncCsJ|D] }|j|jkr
d|_|d@}|j|j|N<|jd7_qdS)Nr��)rrr)rr�c�brrrr0s�zEntropyPool._stircCs6|j�|�|�Wd�dS1swYdS�N)r
r)rrrrr�stir8s"�zEntropyPool.stircCs�|jr
|jt��kr`zt�d�}Wn8tyIztddd��
}|�d�}Wd�n1s/wYWntyFtt	�	���
�}YnwYnwd|_t��|_d|_t|�}|�
|�dSdS)N�z/dev/urandom�rbrT)rrrr�urandom�	Exception�open�read�str�time�encoder	rr)rr�rrrr�_maybe_seed<s(�����
�zEntropyPool._maybe_seedcCs�|j�?|��|jdus|j|jkr-|j�t|j��t	|j���|_|�
|j�d|_|j|j}|jd7_Wd�|S1sEwY|S)Nrr )r
r/r	r
rr�update�bytesrrr)r�valuerrr�random_8Ls
�	�	zEntropyPool.random_8cC�|��d|��S)N�)r3�rrrr�	random_16X�zEntropyPool.random_16cCr4)N�)r7r6rrr�	random_32[r8zEntropyPool.random_32�first�lastcCsd||d}|dkrtd��|dkr|j}d}n|dkr"|j}d}n|j}d}|||�|dS)	Nr lztoo bigr9l��r5i��r)�
ValueErrorr:r7r3)rr;r<�size�rand�maxrrr�random_between^szEntropyPool.random_betweenr#)rN)�__name__�
__module__�__qualname__rr1rrr$r/�intr3r7r:rArrrrrs
r�
system_randomrcCstdur
t�dd�St��S)Nrr9)rF�	randrangerr7rrrrr7wsr7r;r<cCs$tdurt�||d�St�||�S)Nr )rFrGrrA)r;r<rrr�between~srH)rr�randomrr,�typingrrrr�__annotations__�SystemRandomrFr(rEr7rHrrrr�<module>s 
T�