
    Eh                         d Z dZddgZddlZej                  d   dk(  rej                  d   dk(  rddl ddl dd	lmZ dd
l	m
Z
 e
j                  dk(  sJ  G d de      Zej                  ZddZy)zQSHA_d-256 hash function implementation.

This module should comply with PEP 247.
z$Id$newdigest_size    N      )*)b2a_hex)SHA256    c                   T    e Zd ZdZej
                  Z e       Zd Zd Z	d Z
d Zd Zy)_SHAd256z;SHA-256, doubled.

    Returns SHA-256(SHA-256(data)).
    c                 T    || j                   urt        dt        d      || _        y )Nz-Do not instantiate this class directly.  Use z.new())	_internalAssertionError__name___h)selfinternal_api_checksha256_hash_objs      ^/var/www/html/bid_assistant/venv/lib/python3.12/site-packages/Crypto/Random/Fortuna/SHAd256.py__init__z_SHAd256.__init__7   s$    T^^3 \d!fgg!    c                 f    t        t        j                  | j                  j	                               S )z$Return a copy of this hashing object)r   SHAd256r   r   copy)r   s    r   r   z_SHAd256.copy=   s    ))477<<>::r   c                     t        j                  | j                  j                               j                         }t	        |      dk(  sJ |S )z7Return the hash value of this object as a binary stringr
   )r	   r   r   digestlenr   retvals     r   r   z_SHAd256.digestB   s;    DGGNN,-4466{b   r   c                     t        | j                               }t        |      dk(  sJ t        j                  d   dk(  r|S |j                         S )zHReturn the hash value of this object as a (lowercase) hexadecimal string@   r   r   )r   r   r   sysversion_infodecoder   s     r   	hexdigestz_SHAd256.hexdigestI   sH    '6{b   A!#M==?"r   c                 :    | j                   j                  |       y N)r   update)r   datas     r   r(   z_SHAd256.updateS   s    tr   N)r   
__module____qualname____doc__r	   r   objectr   r   r   r   r%   r(    r   r   r   r   -   s4    
 $$KI";
#r   r   c                     | st        d      } t        t        j                  t        j                  |             }t               d   |_        |S )z#Return a new SHAd256 hashing object r   )br   r   r	   r   globals)r)   shas     r   r   r   Z   s<    rU
8%%vzz$'7
8CiCGJr   r'   )r,   __revision____all__r"   r#   Crypto.Util.py21compatCrypto.Util.py3compatbinasciir   Crypto.Hashr	   r   r-   r   r   r.   r   r   <module>r:      s   2 -
  
A! 0 0 3q 8( #  R 'v 'T ""r   