JFIF$        dd7 

Viewing File: /usr/lib/python3.9/site-packages/dns/__pycache__/entropy.cpython-39.pyc

a

�M�e��@s�UddlZddlZddlZddlZddlZddlmZmZGdd�d�Ze�Z	eee
d<ze��ZWne
y|dZYn0ed�dd�Zeeed	�d
d�ZdS)�N)�Any�Optionalc@s�eZdZdeed�dd�Zedd�dd�Zedd�dd	�Zdd
�dd�Ze	d
�d
d�Z
e	d
�dd�Ze	d
�dd�Ze	e	e	d�dd�Z
dS)�EntropyPoolN)�seedcCspd|_d|_d|_t��|_t��|_d|_	t
d|j	�|_|dur`|�|�d|_
t��|_nd|_
d|_dS)Nr��TF)�
pool_index�digest�	next_byte�	threading�Lock�lock�hashlibZsha1�hash�hash_len�	bytearray�pool�_stir�seeded�os�getpid�seed_pid)�selfr�r�//usr/lib/python3.9/site-packages/dns/entropy.py�__init__ s


zEntropyPool.__init__)�entropy�returncCsJ|D]@}|j|jkrd|_|d@}|j|j|N<|jd7_qdS)Nr��)rrr)rr�c�brrrr0szEntropyPool._stircCs4|j�|�|�Wd�n1s&0YdS)N)r
r)rrrrr�stir8szEntropyPool.stir�rcCs�|jr|jt��kr�zt�d�}Wnpty�z:tddd��}|�d�}Wd�n1s^0YWn"ty�tt	�	���
�}Yn0Yn0d|_t��|_d|_t|�}|�
|�dS)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|jkrZ|j�t|j��t	|j���|_|�
|j�d|_|j|j}|jd7_Wd�n1s�0Y|S)Nrr)r
r.r	r
rr�update�bytesrrr)r�valuerrr�random_8Ls,zEntropyPool.random_8cCs|��d|��S)N�)r2�rrrr�	random_16XszEntropyPool.random_16cCs|��d|��S)N�)r5r4rrr�	random_32[szEntropyPool.random_32��first�lastrcCsd||d}|dkrtd��|dkr0|j}d}n|dkrD|j}d}n
|j}d}|||�|dS)	Nrlztoo bigr6l��r3i��r)�
ValueErrorr7r5r2)rr9r:�sizeZrand�maxrrr�random_between^szEntropyPool.random_between)N)�__name__�
__module__�__qualname__rr0rrr"r.�intr2r5r7r>rrrrrsr�
system_randomr#cCs tdurt�dd�St��SdS)Nrr6)rC�	randrangerr5rrrrr5wsr5r8cCs(tdurt�||d�St�||�SdS)Nr)rCrDrr>)r9r:rrr�between~srE)rrZrandomrr+�typingrrrr�__annotations__ZSystemRandomrCr'rBr5rErrrr�<module>s
T

Back to Directory  nL+D550H?Mx ,D"v]qv;6*Zqn)ZP0!1 A "#a$2Qr D8 a Ri[f\mIykIw0cuFcRı?lO7к_f˓[C$殷WF<_W ԣsKcëIzyQy/_LKℂ;C",pFA:/]=H  ~,ls/9ć:[=/#f;)x{ٛEQ )~ =𘙲r*2~ a _V=' kumFD}KYYC)({ *g&f`툪ry`=^cJ.I](*`wq1dđ#̩͑0;H]u搂@:~וKL Nsh}OIR*8:2 !lDJVo(3=M(zȰ+i*NAr6KnSl)!JJӁ* %݉?|D}d5:eP0R;{$X'xF@.ÊB {,WJuQɲRI;9QE琯62fT.DUJ;*cP A\ILNj!J۱+O\͔]ޒS߼Jȧc%ANolՎprULZԛerE2=XDXgVQeӓk yP7U*omQIs,K`)6\G3t?pgjrmۛجwluGtfh9uyP0D;Uڽ"OXlif$)&|ML0Zrm1[HXPlPR0'G=i2N+0e2]]9VTPO׮7h(F*癈'=QVZDF,d߬~TX G[`le69CR(!S2!P <0x<!1AQ "Raq02Br#SCTb ?Ζ"]mH5WR7k.ۛ!}Q~+yԏz|@T20S~Kek *zFf^2X*(@8r?CIuI|֓>^ExLgNUY+{.RѪ τV׸YTD I62'8Y27'\TP.6d&˦@Vqi|8-OΕ]ʔ U=TL8=;6c| !qfF3aů&~$l}'NWUs$Uk^SV:U# 6w++s&r+nڐ{@29 gL u"TÙM=6(^"7r}=6YݾlCuhquympǦ GjhsǜNlɻ}o7#S6aw4!OSrD57%|?x>L |/nD6?/8w#[)L7+6〼T ATg!%5MmZ/c-{1_Je"|^$'O&ޱմTrb$w)R$& N1EtdU3Uȉ1pM"N*(DNyd96.(jQ)X 5cQɎMyW?Q*!R>6=7)Xj5`J]e8%t!+'!1Q5 !1 AQaqё#2"0BRb?Gt^## .llQT $v,,m㵜5ubV =sY+@d{N! dnO<.-B;_wJt6;QJd.Qc%p{ 1,sNDdFHI0ГoXшe黅XۢF:)[FGXƹ/w_cMeD,ʡcc.WDtA$j@:) -# u c1<@ۗ9F)KJ-hpP]_x[qBlbpʖw q"LFGdƶ*s+ډ_Zc"?%t[IP 6J]#=ɺVvvCGsGh1 >)6|ey?Lӣm,4GWUi`]uJVoVDG< SB6ϏQ@ TiUlyOU0kfV~~}SZ@*WUUi##; s/[=!7}"WN]'(L! ~y5g9T̅JkbM' +s:S +B)v@Mj e Cf jE 0Y\QnzG1д~Wo{T9?`Rmyhsy3!HAD]mc1~2LSu7xT;j$`}4->L#vzŏILS ֭T{rjGKC;bpU=-`BsK.SFw4Mq]ZdHS0)tLg