o
    Œõ±jý  ã                   @   s†   d dl mZmZ d dlZd dlmZ G dd„ dƒZddede	fd	d
„Z
dde	fdd„Ze
ZeZejZejZejZejZejZejZdS )é    )ÚABCÚabstractmethodN)Úloggerc                   @   sJ   e Zd Zdefdd„Zedd„ ƒZedd„ ƒZedd	„ ƒZed
d„ ƒZ	dS )ÚhashBASEÚdatac                 C   s*   d | _ |  ¡  |d ur| j  |¡ d S d S ©N)Ú_hashÚ
setup_hashÚupdate©Úselfr   © r   ú„/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/unicrypto/hashlib.pyÚ__init__   s
   ÿzhashBASE.__init__c                 C   ó   t ƒ ‚r   ©ÚNotImplementedError©r   r   r   r   r	      s   zhashBASE.setup_hashc                 C   r   r   r   r   r   r   r   r
      ó   zhashBASE.updatec                 C   r   r   r   r   r   r   r   Údigest   r   zhashBASE.digestc                 C   r   r   r   r   r   r   r   Ú	hexdigest   r   zhashBASE.hexdigestN)
Ú__name__Ú
__module__Ú__qualname__Úbytesr   r   r	   r
   r   r   r   r   r   r   r      s    


r   ó    Únamer   c                 C   sb   |   ¡ dkrt d|  ¡ ddlm} ||ƒS |   ¡ tjv r+t d|  ¡ t | |¡S td|  ƒ‚)NÚmd4zhashlib using "pure" for "%s"r   )ÚMD4z hashlib using "builtin" for "%s"z"Algorithm "%s" is not implemented!)	Úlowerr   ÚdebugÚunicrypto.backends.pure.MD4r   Ú__builtinHashlibÚalgorithms_availableÚnewr   )r   r   r   r   r   r   Úhashselector   s   r%   c                 C   s
   t d| ƒS )Nr   )r%   )r   r   r   r   Úmd4hash*   s   
r&   )r   )Úabcr   r   Úhashlibr"   Ú	unicryptor   r   Ústrr   r%   r&   r$   r   Úmd5Úsha1Úsha224Úsha256Úsha384Úsha512r   r   r   r   Ú<module>   s    
