§
    hÝ[f2	  ã                  ó–   — d dl mZ d dlZd dlZd dlmZ d dlmZmZm	Z	 d dl
mZ d dlmZ d dlmZ ej        dz  Z G d	„ d
e¦  «        ZdS )é    )ÚannotationsN)Úutils)ÚAlreadyFinalizedÚ
InvalidKeyÚUnsupportedAlgorithm)Úopenssl)Úconstant_time)ÚKeyDerivationFunctioné   c                  ó*   — e Zd Z	 ddd„Zdd„Zdd„ZdS )ÚScryptNÚsaltÚbytesÚlengthÚintÚnÚrÚpÚbackendú
typing.Anyc                ól  — ddl m} |                     ¦   «         st          d¦  «        ‚|| _        t          j        d|¦  «         |dk     s||dz
  z  dk    rt          d¦  «        ‚|dk     rt          d¦  «        ‚|dk     rt          d	¦  «        ‚d
| _        || _	        || _
        || _        || _        d S )Nr   )r   z/This version of OpenSSL does not support scryptr   r   é   z-n must be greater than 1 and be a power of 2.z%r must be greater than or equal to 1.z%p must be greater than or equal to 1.F)Ú,cryptography.hazmat.backends.openssl.backendr   Úscrypt_supportedr   Ú_lengthr   Ú_check_bytesÚ
ValueErrorÚ_usedÚ_saltÚ_nÚ_rÚ_p)Úselfr   r   r   r   r   r   Úossls           ú]/var/www/piapp/venv/lib/python3.11/site-packages/cryptography/hazmat/primitives/kdf/scrypt.pyÚ__init__zScrypt.__init__   sè   € ð	
ð 	
ð 	
ð 	
ð 	
ð 	
ð ×$Ò$Ñ&Ô&ð 	Ý&ØAñô ð ð ˆŒÝÔ˜6 4Ñ(Ô(Ð(ØˆqŠ5ˆ5�Q˜!˜a™%‘[ QÒ&Ð&ÝÐLÑMÔMÐMàˆqŠ5ˆ5ÝÐDÑEÔEÐEàˆqŠ5ˆ5ÝÐDÑEÔEÐEàˆŒ
ØˆŒ
ØˆŒØˆŒØˆŒˆˆó    Úkey_materialÚreturnc           	     óì   — | j         rt          d¦  «        ‚d| _         t          j        d|¦  «         t          j                             || j        | j        | j	        | j
        t          | j        ¦  «        S )Nz'Scrypt instances can only be used once.Tr(   )r   r   r   Ú_check_byteslikeÚrust_opensslÚkdfÚderive_scryptr   r    r!   r"   Ú
_MEM_LIMITr   )r#   r(   s     r%   ÚderivezScrypt.derive<   sp   € ØŒ:ð 	NÝ"Ð#LÑMÔMÐMØˆŒ
åÔ˜~¨|Ñ<Ô<Ð<åÔ×-Ò-ØØŒJØŒGØŒGØŒGÝØŒLñ
ô 
ð 	
r'   Úexpected_keyÚNonec                óx   — |                       |¦  «        }t          j        ||¦  «        st          d¦  «        ‚d S )NzKeys do not match.)r0   r	   Úbytes_eqr   )r#   r(   r1   Úderived_keys       r%   ÚverifyzScrypt.verifyM   sA   € Ø—k’k ,Ñ/Ô/ˆÝÔ% k°<Ñ@Ô@ð 	3ÝÐ1Ñ2Ô2Ð2ð	3ð 	3r'   )N)r   r   r   r   r   r   r   r   r   r   r   r   )r(   r   r)   r   )r(   r   r1   r   r)   r2   )Ú__name__Ú
__module__Ú__qualname__r&   r0   r6   © r'   r%   r   r      s[   € € € € € ð #ð ð  ð  ð  ð  ðD
ð 
ð 
ð 
ð"3ð 3ð 3ð 3ð 3ð 3r'   r   )Ú
__future__r   ÚsysÚtypingÚcryptographyr   Úcryptography.exceptionsr   r   r   Ú"cryptography.hazmat.bindings._rustr   r,   Úcryptography.hazmat.primitivesr	   Ú"cryptography.hazmat.primitives.kdfr
   Úmaxsizer/   r   r:   r'   r%   ú<module>rD      së   ðð
 #Ð "Ð "Ð "Ð "Ð "à 
€
€
€
Ø €€€à Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð
 GÐ FÐ FÐ FÐ FÐ FØ 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø DÐ DÐ DÐ DÐ DÐ Dð Œ[˜AÑ€
ð73ð 73ð 73ð 73ð 73Ð"ñ 73ô 73ð 73ð 73ð 73r'   