| Server IP : 61.19.30.66 / Your IP : 216.73.216.15 Web Server : Apache/2.2.22 (Ubuntu) System : Linux klw 3.11.0-15-generic #25~precise1-Ubuntu SMP Thu Jan 30 17:39:31 UTC 2014 x86_64 User : www-data ( 33) PHP Version : 5.3.10-1ubuntu3.48 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : ON | cURL : OFF | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /usr/lib/python2.7/dist-packages/Crypto/Random/Fortuna/ |
Upload File : |
ó
T:´Nc @ sØ d Z d d l Z e j d d k rE e j d d k rE d d l Tn d d l Td d l m Z d d l Z d d l Z d d l m
Z
d d l Z d d l Z d e
f d
„ ƒ YZ d „ Z d e
f d
„ ƒ YZ d S( s $Id$iÿÿÿÿNi i i ( t *( t b2a_hex( t ClockRewindWarningt FortunaPoolc B sD e Z d Z e j Z d „ Z d „ Z d „ Z d „ Z d „ Z RS( sg Fortuna pool type
This object acts like a hash object, with the following differences:
- It keeps a count (the .length attribute) of the number of bytes that
have been added to the pool
- It supports a .reset() method for in-place reinitialization
- The method to add bytes to the pool is .append(), not .update().
c C s | j ƒ d S( N( t reset( t self( ( sL /usr/lib/python2.7/dist-packages/Crypto/Random/Fortuna/FortunaAccumulator.pyt __init__6 s c C s) | j j | ƒ | j t | ƒ 7_ d S( N( t _ht updatet lengtht len( R t data( ( sL /usr/lib/python2.7/dist-packages/Crypto/Random/Fortuna/FortunaAccumulator.pyt append9 s c C s
| j j ƒ S( N( R t digest( R ( ( sL /usr/lib/python2.7/dist-packages/Crypto/Random/Fortuna/FortunaAccumulator.pyR
= s c C s= t j d d k r# t | j ƒ ƒ St | j ƒ ƒ j ƒ Sd S( Ni i ( t syst version_infoR R
t decode( R ( ( sL /usr/lib/python2.7/dist-packages/Crypto/Random/Fortuna/FortunaAccumulator.pyt hexdigest@ s c C s t j ƒ | _ d | _ d S( Ni ( t SHAd256t newR R ( R ( ( sL /usr/lib/python2.7/dist-packages/Crypto/Random/Fortuna/FortunaAccumulator.pyR F s (
t __name__t
__module__t __doc__R t digest_sizeR R R
R R ( ( ( sL /usr/lib/python2.7/dist-packages/Crypto/Random/Fortuna/FortunaAccumulator.pyR ) s c C sh | d k s t ‚ g } d } xC t d ƒ D]5 } | | @d k rQ | j | ƒ n P| d >d B} q+ W| S( s? Return a list of pools indexes (in range(32)) that are to be included during reseed number r.
According to _Practical Cryptography_, chapter 10.5.2 "Pools":
"Pool P_i is included if 2**i is a divisor of r. Thus P_0 is used
every reseed, P_1 every other reseed, P_2 every fourth reseed, etc."
i i i l ( t AssertionErrort rangeR ( t rt retvalt maskt i( ( sL /usr/lib/python2.7/dist-packages/Crypto/Random/Fortuna/FortunaAccumulator.pyt which_poolsJ s t FortunaAccumulatorc B s; e Z d Z d Z d „ Z d „ Z d d „ Z d „ Z RS( i@ gš™™™™™¹?c C sj d | _ t j ƒ | _ d | _ g t d ƒ D] } t ƒ ^ q. | _ | j d | j d k sf t ‚ d S( Ni i i (
t reseed_countt FortunaGeneratort AESGeneratort generatort Nonet last_reseedR R t poolsR ( R R ( ( sL /usr/lib/python2.7/dist-packages/Crypto/Random/Fortuna/FortunaAccumulator.pyR d s
%c C s¤ t j ƒ } | j d k rF | j | k rF t j d t ƒ d | _ n | j d j | j k r” | j d k s„ | | j | j k r” | j
| ƒ n | j j | ƒ S( Ns- Clock rewind detected. Resetting last_reseed.i (
t timeR% R$ t warningst warnR R&