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|st| | }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
	