File: //lib/python3/dist-packages/cryptography/hazmat/primitives/kdf/__pycache__/scrypt.cpython-38.pyc
U
�e�]k � @ s� d dl mZmZmZ d dlZd dlmZ d dlmZm Z m
Z
mZ d dlm
Z
d dlmZ d dlmZ ejd Ze�e�G d d
� d
e��ZdS )� )�absolute_import�division�print_functionN)�utils)�AlreadyFinalized�
InvalidKey�UnsupportedAlgorithm�_Reasons)�
ScryptBackend)�
constant_time)�KeyDerivationFunction� c @ s$ e Zd Zdd� Zdd� Zdd� ZdS )�Scryptc C s� t |t�stdtj��|| _t�d|� |dk s@||d @ dkrHtd��|dk rXtd��|dk rhtd��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)�
isinstancer
r r ZBACKEND_MISSING_INTERFACE�_lengthr �_check_bytes�
ValueError�_used�_salt�_n�_r�_p�_backend)�selfr Zlength�n�r�pZbackend� r �K/usr/lib/python3/dist-packages/cryptography/hazmat/primitives/kdf/scrypt.py�__init__ s&