ÿØÿàJFIFÿþ ÿÛC       ÿÛC ÿÀÿÄÿÄ"#QrÿÄÿÄ&1!A"2qQaáÿÚ ?Øy,æ/3JæÝ¹È߲؋5êXw²±ÉyˆR”¾I0ó2—PI¾IÌÚiMö¯–þrìN&"KgX:Šíµ•nTJnLK„…@!‰-ý ùúmë;ºgµŒ&ó±hw’¯Õ@”Ü— 9ñ-ë.²1<yà‚¹ïQÐU„ہ?.’¦èûbß±©Ö«Âw*VŒ) `$‰bØÔŸ’ëXÖ-ËTÜíGÚ3ð«g Ÿ§¯—Jx„–’U/ÂÅv_s(Hÿ@TñJÑãõçn­‚!ÈgfbÓc­:él[ðQe 9ÀPLbÃãCµm[5¿ç'ªjglå‡Ûí_§Úõl-;"PkÞÞÁQâ¼_Ñ^¢SŸx?"¸¦ùY騐ÒOÈ q’`~~ÚtËU¹CڒêV  I1Áß_ÿÙ Bd\Rc@sVdZddlmZdZddlZddlZddlZddlZddlZddl Z e j ddkre j ddkrddl Tnddl Tyddl Z Wnek rdZ nXddlZddlZd ejfd YZd Zd ejfd YZidZedkrRdZejddndS(s0Self-test suite for generic Crypto.Random stuff i(t nested_scopess$Id$Niii(t*t RNGForkTestcBseZdZdZRS(cCsBtjjj}|jjz|jjSWd|jjXdS(s Get `FortunaAccumulator.reseed_count`, the global count of the number of times that the PRNG has been reseeded. N( tCryptotRandomt_UserFriendlyRNGt_get_singletont_locktacquiret_fat reseed_counttrelease(tselft rng_singleton((s_/opt/alt/python27/lib64/python2.7/site-packages/Crypto/SelfTest/Random/test__UserFriendlyRNG.pyt_get_reseed_count2s  c Cstjjdr,ttd s(tdStjd|j}t j j j j t j jd|j}|j||g}xtdD]}tj\}}tjdkr)tj|tj|d}t j jt j jd}|j||jtjdntj||jtj|d qWg} i} xD|D]<}tj|j}| j|d| |<|jqfWt| t| jkrtd tj| ndS( Ntwintforkg333333?ii itwbitrbs'RNG output duplicated across fork(): %s( tsystplatformt startswiththasattrtostAssertionErrorttimetsleepRRRRRtreinittget_random_bytestassertNotEqualtrangetpipeRtclosetfdopentatforktwritet_exittappendtbinasciithexlifytreadtlentkeystpprinttpformat( R treseed_count_beforetreseed_count_aftertrfilestitrfdtwfdtftdatatresultst results_dict((s_/opt/alt/python27/lib64/python2.7/site-packages/Crypto/SelfTest/Random/test__UserFriendlyRNG.pytrunTest>s@           (t__name__t __module__RR7(((s_/opt/alt/python27/lib64/python2.7/site-packages/Crypto/SelfTest/Random/test__UserFriendlyRNG.pyR0s cCsntjjd}tjdtjjd}|jtj||jtj||jddS(Nig?( RRRRRtputR&tb2a_hextNone(tqtatb((s_/opt/alt/python27/lib64/python2.7/site-packages/Crypto/SelfTest/Random/test__UserFriendlyRNG.pyt _task_mainss  tRNGMultiprocessingForkTestcBseZdZRS(c Csd}tj}gt|D]}|jd^q}tjdtjjj j tjj dtj d|dtjj }|jt|}gt|D]}||jd^q}gt|D]}||jd^q}tt||} |jd|j|jtt|t|ksgtt| t| krtdtj| fndS(Niig333333?t processest initializeris'RNG output duplicated across fork(): %s(tmultiprocessingtManagerRtQueueRRRRRRRRtPoolR"t map_asyncR@tgettlisttzipR tjoinR)tsetRR+R,( R tn_procstmanagerR0tqueuestpoolt map_resulttaatbbtres((s_/opt/alt/python27/lib64/python2.7/site-packages/Crypto/SelfTest/Random/test__UserFriendlyRNG.pyR7~s" ( ,,   <(R8R9R7(((s_/opt/alt/python27/lib64/python2.7/site-packages/Crypto/SelfTest/Random/test__UserFriendlyRNG.pyRA|scCs9g}|tg7}tdk r5|tg7}n|S(N(RRDR<RA(tconfigttests((s_/opt/alt/python27/lib64/python2.7/site-packages/Crypto/SelfTest/Random/test__UserFriendlyRNG.pyt get_testss  t__main__cCstjtS(N(tunittestt TestSuiteRX(((s_/opt/alt/python27/lib64/python2.7/site-packages/Crypto/SelfTest/Random/test__UserFriendlyRNG.pyttt defaultTesttsuite(t__doc__t __future__Rt __revision__R&R+RZRRRt version_infotCrypto.Util.py21compattCrypto.Util.py3compatRDt ImportErrorR<tCrypto.Random._UserFriendlyRNGRtCrypto.Random.randomtTestCaseRR@RARXR8R_tmain(((s_/opt/alt/python27/lib64/python2.7/site-packages/Crypto/SelfTest/Random/test__UserFriendlyRNG.pyts0      &      C $