
    &i                         d dl mZ d dlmZ d dlmZmZ  G d de      Z G d de      Z e       Z	e	j                  Z
e	j                  Zy)	    )cast)keccak)
BackendAPIPreImageAPIc                   @    e Zd ZdeddfdZdeddfdZdefdZddZy)	CryptodomePreimageprehashreturnNc                 N    t        j                  |dd      | _        |g| _        y )N   T)datadigest_bitsupdate_after_digest)r   new_hash_partsselfr	   s     O/var/www/br/venv/lib/python3.12/site-packages/eth_hash/backends/pycryptodome.py__init__zCryptodomePreimage.__init__   s"    ZZW#SWX
 i    c                 p    | j                   j                  |       | j                  j                  |       y N)r   updater   appendr   s     r   r   zCryptodomePreimage.update   s&    

'"7#r   c                 R    t        t        | j                  j                               S r   )r   bytesr   digestr   s    r   r   zCryptodomePreimage.digest   s    E4::,,.//r   c                 J    t        dj                  | j                              S )Nr   )r   joinr   r   s    r   copyzCryptodomePreimage.copy   s    !#((4;;"788r   )r
   r   )__name__
__module____qualname__r   r   r   r   r"    r   r   r   r      s9       $  $e $ $0 09r   r   c                   8    e Zd Zdeez  defdZdeez  defdZy)CryptodomeBackendr	   r
   c                 l    t        j                  |d      }t        t        |j	                               S )Nr   )r   r   )r   r   r   r   r   )r   r	   hashers      r   	keccak256zCryptodomeBackend.keccak256#   s%    c:E6==?++r   c                     t        |      S r   )r   r   s     r   preimagezCryptodomeBackend.preimage'   s    !'**r   N)r#   r$   r%   	bytearrayr   r+   r   r-   r&   r   r   r(   r(   "   s2    ,U!2 ,u ,+	E 1 +k +r   r(   N)typingr   Crypto.Hashr   eth_hash.abcr   r   r   r(   backendr+   r-   r&   r   r   <module>r3      sL   9 9&+
 + 
	r   