ó
BwLc           @   s†   d  Z  d Z d d g Z d d l Td d l m Z d d l m Z e j d k sW t	 ‚ d	 e
 f d
 „  ƒ  YZ e j Z d d „ Z d S(   sQ   SHA_d-256 hash function implementation.

This module should comply with PEP 247.
s   $Id$t   newt   digest_sizeiÿÿÿÿ(   t   *(   t   b2a_hex(   t   SHA256i    t   _SHAd256c           B   sM   e  Z d  Z e j Z e ƒ  Z d „  Z d „  Z d „  Z	 d „  Z
 d „  Z RS(   s;   SHA-256, doubled.

    Returns SHA-256(SHA-256(data)).
    c         C   s2   | |  j  k	 r% t d t f ƒ ‚ n  | |  _ d  S(   Ns5   Do not instantiate this class directly.  Use %s.new()(   t	   _internalt   AssertionErrort   __name__t   _h(   t   selft   internal_api_checkt   sha256_hash_obj(    (    sA   /usr/lib/python2.7/dist-packages/Crypto/Random/Fortuna/SHAd256.pyt   __init__4   s    c         C   s   t  t j |  j j ƒ  ƒ S(   s$   Return a copy of this hashing object(   R   t   SHAd256R   R	   t   copy(   R
   (    (    sA   /usr/lib/python2.7/dist-packages/Crypto/Random/Fortuna/SHAd256.pyR   :   s    c         C   s:   t  j |  j j ƒ  ƒ j ƒ  } t | ƒ d k s6 t ‚ | S(   s7   Return the hash value of this object as a binary stringi    (   R   R    R	   t   digestt   lenR   (   R
   t   retval(    (    sA   /usr/lib/python2.7/dist-packages/Crypto/Random/Fortuna/SHAd256.pyR   ?   s    c         C   s.   t  |  j ƒ  ƒ } t | ƒ d k s* t ‚ | S(   sH   Return the hash value of this object as a (lowercase) hexadecimal stringi@   (   R   R   R   R   (   R
   R   (    (    sA   /usr/lib/python2.7/dist-packages/Crypto/Random/Fortuna/SHAd256.pyt	   hexdigestF   s    c         C   s   |  j  j | ƒ d  S(   N(   R	   t   update(   R
   t   data(    (    sA   /usr/lib/python2.7/dist-packages/Crypto/Random/Fortuna/SHAd256.pyR   M   s    (   R   t
   __module__t   __doc__R   R   t   objectR   R   R   R   R   R   (    (    (    sA   /usr/lib/python2.7/dist-packages/Crypto/Random/Fortuna/SHAd256.pyR   *   s   						t    c         C   s   t  t  j t j |  ƒ ƒ S(   s#   Return a new SHAd256 hashing object(   R   R   R   R    (   R   (    (    sA   /usr/lib/python2.7/dist-packages/Crypto/Random/Fortuna/SHAd256.pyR    T   s    N(   R   t   __revision__t   __all__t   Crypto.Util.python_compatt   binasciiR   t   Crypto.HashR   R   R   R   R   R    (    (    (    sA   /usr/lib/python2.7/dist-packages/Crypto/Random/Fortuna/SHAd256.pyt   <module>   s   
'	