File manager - Edit - /opt/saltstack/salt/lib/python3.10/site-packages/Cryptodome/PublicKey/__pycache__/RSA.cpython-310.pyc
Back
o ;j�y � @ s� g d �Z ddlZddlZddlmZ ddlmZmZmZ ddl m Z mZ ddlm Z ddlmZ ddlmZmZmZ dd lmZmZmZ G d d� de�Zd#d d�Zd$dd�Zdd� Zdd� Zdd� Zdd� Zdd� Z dd� Z!dd� Z"d%d d!�Z#e#Z$d"Z%dS )&)�generate� construct� import_key�RsaKey�oid� N)�Random)�tobytes�bord�tostr)�DerSequence�DerNull)� bytes_to_long)�Integer)�test_probable_prime�generate_probable_prime� COMPOSITE)�_expand_subject_public_key_info�_create_subject_public_key_info� _extract_subject_public_key_infoc @ sV e Zd ZdZdd� Zedd� �Zedd� �Zedd � �Zed d� �Z edd � �Z edd� �Zedd� �Zedd� �Z edd� �Zedd� �Zdd� Zdd� Zdd� Zdd� Zd d!� Zd"d#� Zd$d%� Zd&d'� Zd(d)� Zd*d+� Zd,d-� Zd.d/� Zd0d1� Zd2d3� Z 6 5dKd7d8�Zd9d:� Zd;d<� Z d=d>� Z!d?d@� Z"dAdB� Z#dCdD� Z$dEdF� Z%dGdH� Z&dIdJ� Z'd5S )Lr a� Class defining an RSA key, private or public. Do not instantiate directly. Use :func:`generate`, :func:`construct` or :func:`import_key` instead. :ivar n: RSA modulus :vartype n: integer :ivar e: RSA public exponent :vartype e: integer :ivar d: RSA private exponent :vartype d: integer :ivar p: First factor of the RSA modulus :vartype p: integer :ivar q: Second factor of the RSA modulus :vartype q: integer :ivar invp: Chinese remainder component (:math:`p^{-1} \text{mod } q`) :vartype invp: integer :ivar invq: Chinese remainder component (:math:`q^{-1} \text{mod } p`) :vartype invq: integer :ivar u: Same as ``invp`` :vartype u: integer c K s� t |�� �}t d�}|t d�B }|||fvrtd��|�� D ]\}}t| d| |� q||krF| j| jd | _| j| jd | _ d| _ dS dS )a. Build an RSA key. :Keywords: n : integer The modulus. e : integer The public exponent. d : integer The private exponent. Only required for private keys. p : integer The first factor of the modulus. Only required for private keys. q : integer The second factor of the modulus. Only required for private keys. u : integer The CRT coefficient (inverse of p modulo q). Only required for private keys. ��n�e)�p�q�d�uzSome RSA components are missing�_� N)�set�keys� ValueError�items�setattr�_d�_p�_dp�_q�_dq�_invq)�self�kwargsZ input_setZ public_setZprivate_setZ component�value� r, �L/opt/saltstack/salt/lib/python3.10/site-packages/Cryptodome/PublicKey/RSA.py�__init__R s �zRsaKey.__init__c C � t | j�S �N)�int�_n�r) r, r, r- r q � zRsaKey.nc C r/ r0 )r1 �_er3 r, r, r- r u r4 zRsaKey.ec C � | � � std��t| j�S )Nz-No private exponent available for public keys)�has_private�AttributeErrorr1 r# r3 r, r, r- r y � zRsaKey.dc C r6 )Nz.No CRT component 'p' available for public keys)r7 r8 r1 r$ r3 r, r, r- r r9 zRsaKey.pc C r6 )Nz.No CRT component 'q' available for public keys)r7 r8 r1 r&