Ńň
BwLc           @   sN   d  Z  d g Z d d k Z d d k l Z d e f d     YZ d   Z d S(   s   $Id$t
   WindowsRNGi˙˙˙˙N(   t   BaseRNGc           B   s2   e  Z d  Z d   Z d   Z d   Z d   Z RS(   s   <CryptGenRandom>c         C   s    t  i   |  _ t i |   d  S(   N(   t	   winrandomt   newt   _WindowsRNG__winrandR   t   __init__(   t   self(    (    sU   C:\Documents and Settings\red08xgu\Desktop\python_webupdate\Crypto\Random\OSRNG\nt.pyR   #   s    c         C   sW   |  i  o t d   n |  i i d  } t |  d j p t  t i |   d S(   s*  Work around weakness in Windows RNG.

        The CryptGenRandom mechanism in some versions of Windows allows an
        attacker to learn 128 KiB of past and future output.  As a workaround,
        this function reads 128 KiB of 'random' data from Windows and discards
        it.

        For more information about the weaknesses in CryptGenRandom, see
        _Cryptanalysis of the Random Number Generator of the Windows Operating
        System_, by Leo Dorrendorf and Zvi Gutterman and Benny Pinkas
        http://eprint.iacr.org/2007/419
        s   I/O operation on closed filei   i   Ni   i   (   t   closedt
   ValueErrorR   t	   get_bytest   lent   AssertionErrorR   t   flush(   R   t   data(    (    sU   C:\Documents and Settings\red08xgu\Desktop\python_webupdate\Crypto\Random\OSRNG\nt.pyR   '   s
    
c         C   s   d  |  _ d  S(   N(   t   NoneR   (   R   (    (    sU   C:\Documents and Settings\red08xgu\Desktop\python_webupdate\Crypto\Random\OSRNG\nt.pyt   _close:   s    c         C   s*   |  i    |  i i |  } |  i    | S(   N(   R   R   R	   (   R   t   NR   (    (    sU   C:\Documents and Settings\red08xgu\Desktop\python_webupdate\Crypto\Random\OSRNG\nt.pyt   _read=   s    

(   t   __name__t
   __module__t   nameR   R   R   R   (    (    (    sU   C:\Documents and Settings\red08xgu\Desktop\python_webupdate\Crypto\Random\OSRNG\nt.pyR       s
   			c          O   s   t  |  |   S(   N(   R    (   t   argst   kwargs(    (    sU   C:\Documents and Settings\red08xgu\Desktop\python_webupdate\Crypto\Random\OSRNG\nt.pyR   G   s    (   t   __revision__t   __all__R   t   rng_baseR   R    R   (    (    (    sU   C:\Documents and Settings\red08xgu\Desktop\python_webupdate\Crypto\Random\OSRNG\nt.pyt   <module>   s
   	(