관리-도구
편집 파일: rsa.cpython-39.opt-1.pyc
a ope�S � @ sZ d dl Z d dlmZ d dlmZmZmZ d dlmZm Z m Z d dlmZm Z d dlmZmZmZ d dlmZmZmZmZmZmZ d dlmZmZmZmZ ee jeef eje d �d d�Z!e jd e"ee"d �dd�Z#e jd e"e ee"d�dd�Z$dd� Z%dd� Z&dd� Z'dd� Z(dd� Z)G dd� de�Z*G dd � d e�Z+G d!d"� d"e�Z,G d#d$� d$e�Z-dS )%� N)�utils)�InvalidSignature�UnsupportedAlgorithm�_Reasons)�_calculate_digest_and_algorithm�_check_not_prehashed�_warn_sign_verify_deprecated)�hashes� serialization)�AsymmetricSignatureContext�AsymmetricVerificationContextr )�AsymmetricPadding�MGF1�OAEP�PKCS1v15�PSS�calculate_max_pss_salt_length)� RSAPrivateKey�RSAPrivateNumbers�RSAPublicKey�RSAPublicNumbers)�pss�key�hash_algorithm�returnc C s, | j }|tju s|tju r$t||�S |S d S �N)Z_salt_lengthr Z MAX_LENGTHr r )r r r Zsalt� r �N/usr/lib64/python3.9/site-packages/cryptography/hazmat/backends/openssl/rsa.py�_get_rsa_pss_salt_length) s r )�_RSAPrivateKey� _RSAPublicKey)r �data�paddingr c C s� t |t�std��t |t�r&| jj}nVt |t�rh| jj}t |jt �sPt dtj��| � |�s|t dtj��nt d�|j�tj��t| ||||�S )Nz1Padding must be an instance of AsymmetricPadding.�'Only MGF1 is supported by this backend.zPThis combination of padding and hash algorithm is not supported by this backend.�${} is not supported by this backend.)� isinstancer � TypeErrorr �_lib�RSA_PKCS1_PADDINGr ZRSA_PKCS1_OAEP_PADDING�_mgfr r r �UNSUPPORTED_MGFZrsa_padding_supported�UNSUPPORTED_PADDING�format�name�_enc_dec_rsa_pkey_ctx)�backendr r! r"