£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyÊ¦•êŽ…È®FÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~èŠ©ÊÇí`ÔÑ©úë™µ'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶ê×Ó¼ãžªéUWŸÈË%DÒÕ¬ï‘]/Åcx  ‰ï2ß]ä6G[]S£ÔÏ¯rs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ                  ¯¹ægƒÛowÐø^d™ý½ßB7áyMä9ÜÖUã
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<html>
3
l_                 @   s   d dl mZmZmZ d dlZd dlmZ d dlmZm	Z	m
Z
mZ d dlmZ d dlmZ d dlmZ d dlmZ ejd	 ZejeG d
d deZdS )    )absolute_importdivisionprint_functionN)utils)AlreadyFinalized
InvalidKeyUnsupportedAlgorithm_Reasons)_get_backend)ScryptBackend)constant_time)KeyDerivationFunction   c               @   s&   e Zd ZdddZdd Zdd ZdS )	ScryptNc             C   s   t |}t|tstdtj|| _tjd| |dk sH||d @ dkrPt	d|dk r`t	d|dk rpt	dd	| _
|| _|| _|| _|| _|| _d S )
Nz0Backend object does not implement ScryptBackend.saltr      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)r
   
isinstancer   r   r	   ZBACKEND_MISSING_INTERFACE_lengthr   _check_bytes
ValueError_used_salt_n_r_p_backend)selfr   ZlengthnrpZbackend r    /usr/lib64/python3.6/scrypt.py__init__   s&    
zScrypt.__init__c             C   s@   | j rtdd| _ tjd| | jj|| j| j| j| j	| j
S )Nz'Scrypt instances can only be used once.Tkey_material)r   r   r   Z_check_bytesliker   Zderive_scryptr   r   r   r   r   )r   r#   r    r    r!   derive7   s    zScrypt.derivec             C   s"   | j |}tj||stdd S )NzKeys do not match.)r$   r   Zbytes_eqr   )r   r#   Zexpected_keyZderived_keyr    r    r!   verifyA   s    
zScrypt.verify)N)__name__
__module____qualname__r"   r$   r%   r    r    r    r!   r      s   

r   )Z
__future__r   r   r   sysZcryptographyr   Zcryptography.exceptionsr   r   r   r	   Zcryptography.hazmat.backendsr
   Z'cryptography.hazmat.backends.interfacesr   Zcryptography.hazmat.primitivesr   Z"cryptography.hazmat.primitives.kdfr   maxsizeZ
_MEM_LIMITZregister_interfaceobjectr   r    r    r    r!   <module>   s   
