관리-도구
편집 파일: scrypt.cpython-39.pyc
a �a� � @ sf d dl Z d dlZd dlmZ d dlmZmZmZ d dlm Z d dl mZ e jd Z G dd� de�ZdS ) � N)�utils)�AlreadyFinalized� InvalidKey�UnsupportedAlgorithm)� constant_time)�KeyDerivationFunction� c @ sJ e Zd Zdeeeeeejd�dd�Zeed�dd�Zeedd�d d �Z dS )�ScryptN)�salt�length�n�r�p�backendc C s� ddl m} |�� std��|| _t�d|� |dk sF||d @ dkrNtd��|dk r^td��|dk rntd ��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 Zscrypt_supportedr �_lengthr �_check_bytes� ValueError�_used�_salt�_n�_r�_p)�selfr r r r r r Zossl� r �O/usr/lib64/python3.9/site-packages/cryptography/hazmat/primitives/kdf/scrypt.py�__init__ s$ �zScrypt.__init__)�key_material�returnc C sJ | j rtd��d| _ t�d|� ddlm} |�|| j| j| j | j | j�S )Nz'Scrypt instances can only be used once.Tr r r )r r r Z_check_bytesliker r Z derive_scryptr r r r r )r r r r r r �derive; s �z Scrypt.derive)r �expected_keyr c C s"