Ñò pØcJc@sbdZddklZddklZddklZd„Zd„Zde fd„ƒYZ d S( s, Utility functions for dealing with primes. iÿÿÿÿ(tnumber(tutil(t SSHExceptioncCsßtd|dƒd}xÁto¹|i|ddƒ}|djo&tt|dƒ|@ƒ|d}nti|dƒ}|dO}|d|d>O}xti|ƒp|d7}qœWti |ƒ|joPqqW|S(s$primtive attempt at prime generationiiiii( tpowtTruet get_bytestchrtordRt inflate_longRtisPrimet bit_length(tbitstrandpoolt hbyte_masktxtn((s3/usr/lib/python2.6/site-packages/paramiko/primes.pyt_generate_primes &  cCs±ti|dƒ}|dd}td|dƒd}xrtoj|i|ƒ}|djo&tt|dƒ|@ƒ|d}nti|dƒ}||joPq;q;W|S(s returns a random # from 0 to N-1iiiii(RR RRRRRR(trpoolRR tbytesR Rtnum((s3/usr/lib/python2.6/site-packages/paramiko/primes.pyt _roll_random.s &  t ModulusPackcBs2eZdZd„Zd„Zd„Zd„ZRS(sx convenience object for holding the contents of the /etc/ssh/moduli file, on systems that have such a file. cCsh|_g|_||_dS(N(tpackt discardedR (tselfR((s3/usr/lib/python2.6/site-packages/paramiko/primes.pyt__init__Js  c Csh|iƒ\}}}}}}}t|ƒ}t|ƒ}t|ƒ}t|ƒ}t|ƒ}t|dƒ}|djp2|djp%|d@o5|djo(|djo|ii|dfƒdS|djo d}nti|ƒ} | |jo0| |djo|ii|d |fƒdS| |ijog|i| s