U
    ­Ö«[‡
  ã                   @   sì   d dl mZ d dlmZ ddlmZmZmZmZ ej	Z	ej
Z
ejejksLt‚ejZejZejZejZejZejZejZejZejZejZejZejZejZejejksªt‚ejZej
ZejZejZ ejZ!ejZ"ej#Z$ejZ%ej&Z'dd„ Z&dS )é    )Úabsolute_import)ÚInvalidkeyErroré   )Ú_argon2Úargon2iÚargon2idÚscryptc                 C   sT   |   tj¡rt | |¡S |   tj¡r0t | |¡S |   tj¡rHt | |¡S tdƒ‚dS )zþ
    Takes a modular crypt encoded stored password hash derived using one
    of the algorithms supported by `libsodium` and checks if the user provided
    password will hash to the same string when using the parameters saved
    in the stored hash
    z0given password_hash is not in a supported formatN)Ú
startswithr   Ú	STRPREFIXÚverifyr   r   r   )Zpassword_hashZpassword© r   ú6/usr/lib/python3/dist-packages/nacl/pwhash/__init__.pyr   :   s    r   N)(Z
__future__r   Znacl.exceptionsr   Ú r   r   r   r   r
   ZPWHASH_SIZEZALG_ARGON2_DEFAULTZALG_ARGON2ID13ÚAssertionErrorZ
PASSWD_MINZ
PASSWD_MAXZMEMLIMIT_MAXZMEMLIMIT_MINZOPSLIMIT_MAXZOPSLIMIT_MINZOPSLIMIT_INTERACTIVEZMEMLIMIT_INTERACTIVEZOPSLIMIT_MODERATEZMEMLIMIT_MODERATEZOPSLIMIT_SENSITIVEZMEMLIMIT_SENSITIVEÚstrZALGZ	SALTBYTESZSCRYPT_SALTBYTESZSCRYPT_PWHASH_SIZEZSCRYPT_OPSLIMIT_INTERACTIVEZSCRYPT_MEMLIMIT_INTERACTIVEZSCRYPT_OPSLIMIT_SENSITIVEZSCRYPT_MEMLIMIT_SENSITIVEZkdfZkdf_scryptsalsa208sha256Zscryptsalsa208sha256_strr   Zverify_scryptsalsa208sha256r   r   r   r   Ú<module>   s:   