✏️ 正在编辑: scrypt.cpython-312.pyc
路径:
/var/opt/nydus/ops/cryptography/hazmat/primitives/kdf/__pycache__/scrypt.cpython-312.pyc
提示:
您可以编辑任何文件(包括二进制文件),但请注意不当修改可能导致文件损坏。
� ��'j� � � � d dl Z d dlZd dlmZ d dlmZmZmZ d dlm Z d dl mZ e j dz Z G d� de� Zy) � N)�utils)�AlreadyFinalized� InvalidKey�UnsupportedAlgorithm)� constant_time)�KeyDerivationFunction� c �h � e Zd Z ddedededededej fd�Zd ed efd�Zd eded dfd �Z y)�ScryptN�salt�length�n�r�p�backendc �< � ddl m} |j � st d� �|| _ t j d|� |dk s||dz z dk7 rt d� �|dk rt d� �|dk rt d � �d | _ || _ || _ || _ || _ y )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 �Z/opt/nydus/tmp/pip-target-k0fmikie/lib/python/cryptography/hazmat/primitives/kdf/scrypt.py�__init__zScrypt.__init__ s� � � � �$�$�&�&�A�� � ��� ���6�4�(��q�5�Q�!�a�%�[�Q�&��L�M�M��q�5��D�E�E��q�5��D�E�E��� ��� ���������� �key_material�returnc � � | j rt d� �d| _ t j d|� ddlm} |j || j | j | j | j | j � S )Nz'Scrypt instances can only be used once.Tr$ r r )r r r �_check_bytesliker r � derive_scryptr r r r r )r r$ r s r! �derivez Scrypt.derive: sc � ��:�:�"�#L�M�M��� � ���~�|�<�H��$�$��$�*�*�d�l�l�D�G�G�T�W�W�d�g�g� � r# �expected_keyc �h � | j |� }t j ||� st d� �y )NzKeys do not match.)r) r �bytes_eqr )r r$ r* �derived_keys r! �verifyz Scrypt.verifyF s2 � ��k�k�,�/���%�%�k�<�@��1�2�2� Ar# )N) �__name__� __module__�__qualname__�bytes�int�typing�Anyr"