
    af                     (   d dl Z d dlZd dlZd dlZd dlZd dlmZmZ d dlm	Z	  ej
        de j        v oe j        d          d           ej
        ej                            d           d           G d d	ej                                          ZdS )
    N)utilspublic)util&AUTOBAHN_CI_ENABLE_RNG_DEPLETION_TESTSz\entropy depletion tests not enabled (env var AUTOBAHN_CI_ENABLE_RNG_DEPLETION_TESTS not set)linuxz/entropy depletion tests only available on Linuxc                       e Zd Zd Zd ZdS )TestEntropyc                    i }t          dd          5 }t          d          D ]}t          d          D ]}t          j                     t	          j                    }t          j                    }t          j        d          }t          j        dd          }t          j        dd          }	t          j	        t          d                    }
t          j        t          j        j                  }t          j        d	d	          }t          j                    }t          j                    }t          j                    }|                    d          }t          d
d          5 }t)          |                                          dz  }||vrd||<   ||xx         dz  cc<   d d d            n# 1 swxY w Y   	 d d d            n# 1 swxY w Y   t+          |                                          }t/          d           |D ]+}t/          d                    |||                              ,|                     |d         dk               d S )Nz/dev/urandomrb  d       r   l          
      %/proc/sys/kernel/random/entropy_availr    
system entropy depletion stats:{}: {})openrangerandomseeduuiduuid4getrandbitsrandintnormalvariatechoicer   r   Box
NONCE_SIZEr   generate_tokenidridnewidreadintsortedkeysprintformat
assertTrue)selfresrngijv1v2v3v4v5v6v7v8v9v10v11denteaskeysks                        H/var/www/html/env/lib/python3.11/site-packages/autobahn/test/test_rng.pytest_non_depletingzTestEntropy.test_non_depleting*   s   .$'' "	!34[[ !! !!s ' 'A KMMM B  B+B//B+;<<B-b#66BuSzz22B fj&;<<B ,Q22BB(**C*,,CC HHTNN A3GG !3SXXZZC/B}}"#BGGGqLGGG	! ! ! ! ! ! ! ! ! ! ! ! ! ! !;!!"	! "	! "	! "	! "	! "	! "	! "	! "	! "	! "	! "	! "	! "	! "	!H sxxzz""1222 	. 	.A(//!SV,,----a1%%%%%s6   EG(>F2&G2F66G9F6:GGGc                 n   i }t          dd          5 }t          d          D ]|}|                    d          }t          dd          5 }t          |                                          dz  }||vrd||<   ||xx         d	z  cc<   d d d            n# 1 swxY w Y   }	 d d d            n# 1 swxY w Y   t	          |                                          }t          d
           |D ]+}t          d                    |||                              ,|                     |d         dk               d S )Nz/dev/randomr   i'  r   r   r   r   r   r   r   r   )	r   r   r&   r'   r(   r)   r*   r+   r,   )	r-   r.   r/   r0   r=   r>   r?   r@   rA   s	            rB   test_depletingzTestEntropy.test_depletingY   s   -&& 	!#5\\ 
! 
! HHTNN A3GG !3SXXZZC/B}}"#BGGGqLGGG	! ! ! ! ! ! ! ! ! ! ! ! ! ! !
!	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! sxxzz""1222 	. 	.A(//!SV,,----aA&&&&&s5   7B-
>BB-BB-BB--B14B1N)__name__
__module____qualname__rC   rE        rB   r	   r	   &   s3        -& -& -&^' ' ' ' 'rJ   r	   )ossysunittestr   r   naclr   r   autobahnr   skipIfenvironplatform
startswithTestCaser	   rI   rJ   rB   <module>rU      s  6 
			 



                  >"*L  FQSQ[  ]E  RF  G  Ig  h  hS\,,W5557hiiG' G' G' G' G'(# G' G' ji h  hG' G' G'rJ   