§
    VøÁiÅ  ã                   óÔ   — d dl mZ d dl mZ d dlZd dlZd dlZddlmZmZm	Z	m
Z
mZmZmZmZ ddlmZ g d¢Zdd
ededefd„Zdededefd„Zdededefd„Z	 ddededed
ededefd„ZdS )é    )Úabsolute_import)ÚdivisionNé   )Ú
__author__Ú__copyright__Ú	__email__Ú__license__Ú__summary__Ú	__title__Ú__uri__Ú__version__)Ú_bcrypt)r   r
   r   r   r   r   r	   r   ÚgensaltÚhashpwÚkdfÚcheckpwé   ó   2bÚroundsÚprefixÚreturnc                 óü   — |dvrt          d¦  «        ‚| dk     s| dk    rt          d¦  «        ‚t          j        d¦  «        }t          j        |¦  «        }d|z   dz   d| z                       d	¦  «        z   dz   |z   S )
N)s   2ar   z%Supported prefixes are b'2a' or b'2b'é   é   zInvalid roundsé   ó   $z%2.2uÚascii)Ú
ValueErrorÚosÚurandomr   Úencode_base64Úencode)r   r   ÚsaltÚoutputs       úY/var/www/html/jarvis.com/web/backend/venv/lib/python3.11/site-packages/bcrypt/__init__.pyr   r   4   s¤   € Ø�^Ð#Ð#ÝÐ@ÑAÔAÐAà�‚z€z�V˜b’[�[ÝÐ)Ñ*Ô*Ð*åŒ:�b‰>Œ>€DÝÔ" 4Ñ(Ô(€Fð 	Ø
ñ	à
ñ	ð �VÑ×
#Ò
# GÑ
,Ô
,ñ	-ð ñ		ð
 ñ	ðó    Úpasswordr#   c                 ó²   — t          | t          ¦  «        st          |t          ¦  «        rt          d¦  «        ‚| d d…         } t          j        | |¦  «        S )Nú&Strings must be encoded before hashingéH   )Ú
isinstanceÚstrÚ	TypeErrorr   Úhashpass)r'   r#   s     r%   r   r   H   sX   € Ý�(�CÑ Ô ð B¥J¨tµSÑ$9Ô$9ð BÝÐ@ÑAÔAÐAð ˜˜˜Œ}€HåÔ˜H dÑ+Ô+Ð+r&   Úhashed_passwordc                 ó¾   — t          | t          ¦  «        st          |t          ¦  «        rt          d¦  «        ‚t          | |¦  «        }t	          j        ||¦  «        S )Nz'Strings must be encoded before checking)r+   r,   r-   r   ÚhmacÚcompare_digest)r'   r/   Úrets      r%   r   r   W   sX   € Ý�(�CÑ Ô ð C¥J¨ÅÑ$DÔ$Dð CÝÐAÑBÔBÐBå
�˜?Ñ
+Ô
+€CÝÔ˜s OÑ4Ô4Ð4r&   FÚdesired_key_bytesÚignore_few_roundsc                 óÚ  — t          | t          ¦  «        st          |t          ¦  «        rt          d¦  «        ‚t          | ¦  «        dk    st          |¦  «        dk    rt	          d¦  «        ‚|dk    s|dk    rt	          d¦  «        ‚|dk     rt	          d¦  «        ‚|dk     r1|s/t          j        d	                     |¦  «        t          d
¬¦  «         t          j
        | |||¦  «        S )Nr)   r   z#password and salt must not be emptyi   zdesired_key_bytes must be 1-512r   zrounds must be 1 or moreé2   zrWarning: bcrypt.kdf() called with only {0} round(s). This few is not secure: the parameter is linear, like PBKDF2.é   )Ú
stacklevel)r+   r,   r-   Úlenr   ÚwarningsÚwarnÚformatÚUserWarningr   Úpbkdf)r'   r#   r4   r   r5   s        r%   r   r   _   sü   € õ �(�CÑ Ô ð B¥J¨tµSÑ$9Ô$9ð BÝÐ@ÑAÔAÐAå
ˆ8�}„}˜ÒÐ�S ™YœY¨!š^˜^ÝÐ>Ñ?Ô?Ð?à˜AÒÐÐ!2°SÒ!8Ð!8ÝÐ:Ñ;Ô;Ð;à�‚z€zÝÐ3Ñ4Ô4Ð4à�‚{€{Ð,€{õ 	ŒðPçŠf�V‰nŒnÝØð	
ñ 	
ô 	
ð 	
õ Œ=˜ 4¨Ð1BÑCÔCÐCr&   )r   r   )F)Ú
__future__r   r   r1   r   r;   Ú	__about__r   r   r   r	   r
   r   r   r   Ú r   Ú__all__ÚintÚbytesr   r   Úboolr   r   © r&   r%   ú<module>rH      s¼  ðð  'Ð &Ð &Ð &Ð &Ð &Ø Ð Ð Ð Ð Ð à €€€Ø 	€	€	€	Ø €€€ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð Ð Ð Ð Ð Ð ðð ð €ð ð �Cð  eð ¸ð ð ð ð ð(,�Uð , %ð ,¨Eð ,ð ,ð ,ð ,ð5�eð 5¨eð 5¸ð 5ð 5ð 5ð 5ð $ð Dð  DØð Dà
ð Dð ð Dð ð	 Dð
 ð Dð ð Dð  Dð  Dð  Dð  Dð  Dr&   