ó
BwLc           @   sZ   d  Z  d g Z d d l Z d d l Z d d l m Z d e f d „  ƒ  YZ d „  Z d S(   s   $Id$t   DevURandomRNGiÿÿÿÿN(   t   BaseRNGc           B   s&   e  Z d d  „ Z d „  Z d „  Z RS(   c         C   sª   | d  k r d |  _ n	 | |  _ t |  j d d ƒ } t j | j ƒ  ƒ t j } t j | ƒ s„ | j	 ƒ  t
 d |  j f ƒ ‚ n  | |  _ | j |  _ t j |  ƒ d  S(   Ns   /dev/urandomt   rbi    s$   %r is not a character special device(   t   Nonet   namet   opent   ost   fstatt   filenot   statt   ST_MODEt   S_ISCHRt   closet	   TypeErrort   _DevURandomRNG__filet   readt   _readR   t   __init__(   t   selft   devnamet   ft   fmode(    (    s=   /usr/lib/python2.7/dist-packages/Crypto/Random/OSRNG/posix.pyR   #   s    	
	c         C   s   |  j  j ƒ  d  S(   N(   R   R   (   R   (    (    s=   /usr/lib/python2.7/dist-packages/Crypto/Random/OSRNG/posix.pyt   _close5   s    c         C   s   |  j  j | ƒ S(   N(   R   R   (   R   t   N(    (    s=   /usr/lib/python2.7/dist-packages/Crypto/Random/OSRNG/posix.pyR   8   s    N(   t   __name__t
   __module__R   R   R   R   (    (    (    s=   /usr/lib/python2.7/dist-packages/Crypto/Random/OSRNG/posix.pyR    !   s   	c          O   s   t  |  | Ž  S(   N(   R    (   t   argst   kwargs(    (    s=   /usr/lib/python2.7/dist-packages/Crypto/Random/OSRNG/posix.pyt   new;   s    (   t   __revision__t   __all__R   R	   t   rng_baseR   R    R   (    (    (    s=   /usr/lib/python2.7/dist-packages/Crypto/Random/OSRNG/posix.pyt   <module>   s   	