Current File : //lib64/python3.9/site-packages/cryptography/hazmat/backends/openssl/__pycache__/rsa.cpython-39.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"