
    
zi                        S SK Jr  S SK Jr  S SKrS SKrS SKrS SKrSSKJrJ	r	J
r
JrJrJrJrJr  SSKJr  / SQr\R&                  " S5      rSS	\S
\S\4S jjrS\S\S\4S jrS\S\S\4S jr SS\S\S\S	\S\S\4S jjrS\SS4S jrg)    )absolute_import)divisionN   )
__author____copyright__	__email____license____summary__	__title____uri____version__)_bcrypt)r   r
   r   r   r   r   r	   r   gensalthashpwkdfcheckpws   ^\$2y\$roundsprefixreturnc                    US;  a  [        S5      eU S:  d  U S:  a  [        S5      e[        R                  " S5      n[        R                  R                  SS5      n[        R                  R                  X2[        U5      5        S	U-   S	-   S
U -  R                  S5      -   S	-   [        R                  R                  U5      -   $ )N)s   2a   2bz%Supported prefixes are b'2a' or b'2b'      zInvalid rounds   char[]      $z%2.2uascii)
ValueErrorosurandomr   ffinewlibencode_base64lenencodestring)r   r   saltoutputs       B/var/www/html/venv/lib/python3.13/site-packages/bcrypt/__init__.pyr   r   8   s    ^#@AAzVb[)**::b>D[[__Xr*FKKfCI6 	
	
	 V
#
#G
,	- 		
 ++

V
$	%    passwordr)   c                    [        U [        5      (       d  [        U[        5      (       a  [        S5      eSU ;   a  [        S5      eU S S n U[        R                  SU5      p[        R                  R                  SS5      n[        R                  R                  XU[        U5      5      nUS:w  a  [        S	5      eUS S
 [        R                  R                  U5      S
S  -   $ )N&Strings must be encoded before hashing    z"password may not contain NUL bytesH   s   $2b$r      r   zInvalid saltr   )
isinstancestr	TypeErrorr   _normalize_resubr   r"   r#   r$   bcrypt_hashpassr&   r(   )r-   r)   original_salthashedretvals        r+   r   r   M   s    (C  JtS$9$9@AA(=>> }H  1 1'4 @4[[__Xs+F[[((VMF{(( !w{{11&9!"===r,   hashed_passwordc                     [        U [        5      (       d  [        U[        5      (       a  [        S5      eSU ;   d  SU;   a  [        S5      e[	        X5      n[
        R                  " X!5      $ )Nz'Strings must be encoded before checkingr0   z6password and hashed_password may not contain NUL bytes)r3   r4   r5   r   r   hmaccompare_digest)r-   r<   rets      r+   r   r   s   sc    (C  J$D$DABB(g8D
 	
 
+Cs44r,   desired_key_bytesignore_few_roundsc           
         [        U [        5      (       d  [        U[        5      (       a  [        S5      e[        U 5      S:X  d  [        U5      S:X  a  [	        S5      eUS::  d  US:  a  [	        S5      eUS:  a  [	        S5      eUS:  a0  U(       d)  [
        R                  " S	R                  U5      [        S
S9  [        R                  R                  SU5      n[        R                  R                  U [        U 5      U[        U5      U[        U5      U5      n[        US:H  5        [        R                  R                  XR5      S 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 more2   zrWarning: bcrypt.kdf() called with only {0} round(s). This few is not secure: the parameter is linear, like PBKDF2.   )
stacklevelz	uint8_t[])r3   r4   r5   r&   r   warningswarnformatUserWarningr   r"   r#   r$   bcrypt_pbkdf_bcrypt_assertbuffer)r-   r)   rA   r   rB   keyress          r+   r   r      s    (C  JtS$9$9@AA
8}SY!^>??A!2S!8:;;z344{, 	PfVn	
 ++//+'8
9C
++
"
"#h-s4y#s3xC 3!8;;c5a88r,   okc                 (    U (       d  [        S5      eg )Nzbcrypt assertion failed)SystemError)rP   s    r+   rL   rL      s    344 r,   )   r   )F)
__future__r   r   r>   r    rerG   	__about__r   r   r   r	   r
   r   r   r    r   __all__compiler6   intbytesr   r   boolr   r   rL    r,   r+   <module>r^      s     '   	 	 	 	 	   

;'C e  *#>U #>% #>E #>L
5e 
5e 
5 
5$ $&9&9
&9 &9 	&9
 &9 &9R5t 5 5r,   