o
    ßý°j÷  ã                   @   s¶   d Z ddlmZmZmZmZmZmZmZm	Z	m
Z
mZmZ ddlZddlmZ ddlmZ ddlmZ ede	d	e
d
edediZedefede	fede
fedefedefiZddd„ZdS )Ú
é   )ÚHASHED_NONEÚ
HASHED_MD5ÚHASHED_SALTED_MD5ÚHASHED_SALTED_SHAÚHASHED_SALTED_SHA256ÚHASHED_SALTED_SHA384ÚHASHED_SALTED_SHA512Ú
HASHED_SHAÚHASHED_SHA256ÚHASHED_SHA384ÚHASHED_SHA512é    N)Úurandom)Ú	b64encode)ÚLDAPInvalidHashAlgorithmError)Úmd5ÚMD5)ÚshaÚSHA1)Úsha256ÚSHA256)Úsha384ÚSHA384)Úsha512ÚSHA512Úsmd5ÚsshaÚssha256Ússha384Ússha512Fúutf-8c                 C   sj  t turt|tƒs| |¡}| d u s| tkr|S | tv rOzt t|  d |¡ ¡ }W n t	y;   t
dt | ƒ d ƒ‚w |r@|S dt|  d  t|ƒ d¡ S | tv r{|sYtdƒ}tt|  d || dd	�| }|rl|S dt|  d  t|ƒ d¡ S z|s‡t | |¡ ¡ }nt | || ¡ ¡ | }W n t	y¥   t
dt | ƒ d ƒ‚w |rª|S d|  t|ƒ d¡ S )
Né   zHash algorithm z not availablez{%s}r   Úasciié   T)Úraw)ÚstrÚbytesÚ
isinstanceÚencoder   Úalgorithms_tableÚhashlibÚnewÚdigestÚ
ValueErrorr   r   ÚdecodeÚsalted_tabler   Úhashed)Ú	algorithmÚvalueÚsaltr%   Úencodingr-   © r6   ú…/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/ldap3/utils/hashed.pyr1   7   s>   
ÿ€ÿr1   )NFr!   )Ú__doc__Ú r   r   r   r   r   r   r	   r
   r   r   r   r+   Úosr   Úbase64r   Úcore.exceptionsr   r*   r0   r1   r6   r6   r6   r7   Ú<module>   s&    4û
û	