Qb/ g d Z ddlZddlZddlmZ ddlmZmZmZ ddl m Z mZ ddlm Z ddlmZmZmZ ddlmZmZmZ G d d e ZddZddZd Zd Zd Zd Zd Zd Zd Z ddZ!e!Z"dZ#dS ))generate construct import_keyRsaKeyoid N)Random)tobytesbordtostr)DerSequenceDerNull)Integer)test_probable_primegenerate_probable_prime COMPOSITE)_expand_subject_public_key_info_create_subject_public_key_info _extract_subject_public_key_infoc e Zd ZdZd Zed Zed Zed Zed Z ed Z ed Zed Zed Z ed Zed Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d%dZeZeZd Z d Z!d Z"d! Z#d" Z$d# Z%d$ Z&dS )&r a Class defining an actual RSA key. 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 :undocumented: exportKey, publickey c t | }t d }|t d z }|||fvrt d | D ]\ }}t | d|z | ||k r7| j | j dz z | _ | j | j dz z | _ 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. ne)pqduzSome RSA components are missing_ N)setkeys ValueErroritemssetattr_d_p_dp_q_dq_invq)selfkwargs input_set public_setprivate_set componentvalues v/builddir/build/BUILD/imunify360-venv-2.6.2/opt/imunify360/venv/lib64/python3.11/site-packages/Crypto/PublicKey/RSA.py__init__zRsaKey.__init__S s &