PHP WebShell

Текущая директория: /usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/__pycache__

Просмотр файла: rsa.cpython-310.pyc

o

�)%a�.�@s�ddlZddlZddlmZddlmZddlmZmZddl	m
Z
ddlmZddl
mZmZddlmZdd	lmZmZmZGd
d�dejd�ZeZGd
d�dejd�ZeZ	d4dededefdd�Zdededdfdd�Zdededededededededdfdd�Zded eddfd!d"�Zded#edefd$d%�Z dededefd&d'�Z!dededefd(d)�Z"dededefd*d+�Z#d,Z$d eded-edej%eeffd.d/�Z&Gd0d1�d1e'�Z(Gd2d3�d3e'�Z)dS)5�N)�gcd)�utils)�UnsupportedAlgorithm�_Reasons)�_get_backend)�
RSABackend)�_serialization�hashes)�AsymmetricPadding)�AsymmetricSignatureContext�AsymmetricVerificationContextrc	@s�eZdZejdedejdefdd��Z	ejde
dede
fdd��Zejde
fd	d
��Zejddd
��Zejde
dedejejejfde
fdd��Zejddd��Zejdejdejdejde
fdd��ZdS)�
RSAPrivateKey�padding�	algorithm�returncC�dS)zN
        Returns an AsymmetricSignatureContext used for signing data.
        N�)�selfrrrr�O/usr/lib/python3/dist-packages/cryptography/hazmat/primitives/asymmetric/rsa.py�signer�zRSAPrivateKey.signer�
ciphertextcCr)z3
        Decrypts the provided ciphertext.
        Nr)rrrrrr�decrypt rzRSAPrivateKey.decryptcCr�z7
        The bit length of the public modulus.
        Nr�rrrr�key_size&rzRSAPrivateKey.key_size�RSAPublicKeycCr)zD
        The RSAPublicKey associated with this private key.
        Nrrrrr�
public_key,rzRSAPrivateKey.public_key�datacCr)z!
        Signs the data.
        Nr)rrrrrrr�sign2rzRSAPrivateKey.sign�RSAPrivateNumberscCr)z/
        Returns an RSAPrivateNumbers.
        Nrrrrr�private_numbers=rzRSAPrivateKey.private_numbers�encoding�format�encryption_algorithmcCr�z6
        Returns the key serialized as bytes.
        Nr)rr"r#r$rrr�
private_bytesCrzRSAPrivateKey.private_bytesN)rr)rr )�__name__�
__module__�__qualname__�abc�abstractmethodr
r	�
HashAlgorithmrr�bytesr�abstractproperty�intrr�typing�Union�
asym_utils�	Prehashedrr!r�Encoding�
PrivateFormat�KeySerializationEncryptionr&rrrrr
sJ�������
����r
)�	metaclassc@s�eZdZejdededejde	fdd��Z
ejdededefdd	��Zejde
fd
d��Zejdd
d��Zejdejdejdefdd��Zejdedededejejejfddf
dd��Zejdededejejdefdd��ZdS)r�	signaturerrrcCr)zY
        Returns an AsymmetricVerificationContext used for verifying signatures.
        Nr�rr8rrrrr�verifierSrzRSAPublicKey.verifier�	plaintextcCr)z/
        Encrypts the given plaintext.
        Nr)rr;rrrr�encrypt^rzRSAPublicKey.encryptcCrrrrrrrrdrzRSAPublicKey.key_size�RSAPublicNumberscCr)z-
        Returns an RSAPublicNumbers
        Nrrrrr�public_numbersjrzRSAPublicKey.public_numbersr"r#cCrr%r)rr"r#rrr�public_bytesprzRSAPublicKey.public_bytesrNcCr)z5
        Verifies the signature of the data.
        Nr)rr8rrrrrr�verifyzrzRSAPublicKey.verifycCr)z@
        Recovers the original data from the signature.
        Nrr9rrr�recover_data_from_signature�rz(RSAPublicKey.recover_data_from_signature)rr=)r'r(r)r*r+r-r
r	r,rr:r<r.r/rr>rr4�PublicFormatr?r0r1r2r3r@�OptionalrArrrrrRs^����
���	�������
��r�public_exponentrrcCs4t|�}t|t�stdtj��t||�|�||�S)Nz-Backend object does not implement RSABackend.)r�
isinstancerrr�BACKEND_MISSING_INTERFACE�_verify_rsa_parameters�generate_rsa_private_key)rDr�backendrrr�generate_private_key�s
�
rJcCs$|dvrtd��|dkrtd��dS)N)�izopublic_exponent must be either 3 (for legacy compatibility) or 65537. Almost everyone should choose 65537 here!iz#key_size must be at least 512-bits.��
ValueError)rDrrrrrG�s��rG�p�q�private_exponent�dmp1�dmq1�iqmp�moduluscCs�|dkrtd��||krtd��||krtd��||kr td��||kr(td��||kr0td��||kr8td��|dks@||krDtd	��|d
@dkrNtd��|d
@dkrXtd
��|d
@dkrbtd��|||krltd��dS)NrKzmodulus must be >= 3.zp must be < modulus.zq must be < modulus.zdmp1 must be < modulus.zdmq1 must be < modulus.ziqmp must be < modulus.z#private_exponent must be < modulus.z+public_exponent must be >= 3 and < modulus.�rzpublic_exponent must be odd.zdmp1 must be odd.zdmq1 must be odd.zp*q must equal modulus.rL)rNrOrPrQrRrSrDrTrrr�_check_private_key_components�s2
�rV�e�ncCs@|dkrtd��|dks||krtd��|d@dkrtd��dS)NrKzn must be >= 3.ze must be >= 3 and < n.rUrze must be odd.rL)rWrXrrr�_check_public_key_components�s�rY�mc	CsXd\}}||}}|dkr(t||�\}}|||}||||f\}}}}|dks
||S)zO
    Modular Multiplicative Inverse. Returns x such that: (x*e) mod m == 1
    )rUrr)�divmod)	rWrZ�x1�x2�a�brO�r�xnrrr�_modinv�s
�rbcCs
t||�S)zF
    Compute the CRT (q ** -1) % p value from RSA primes p and q.
    )rb)rNrOrrr�rsa_crt_iqmp�s
rccC�||dS)zg
    Compute the CRT private_exponent % (p - 1) value from the RSA
    private_exponent (d) and p.
    rUr)rPrNrrr�rsa_crt_dmp1��recCrd)zg
    Compute the CRT private_exponent % (q - 1) value from the RSA
    private_exponent (d) and q.
    rUr)rPrOrrr�rsa_crt_dmq1rfrgi��dcCs�||d}|}|ddkr|d}|ddksd}d}|s\|tkr\|}||krRt|||�}|dkrJ||dkrJt|d|�dkrJt|d|�}	d}n|d9}||ks(|d7}|s\|tks"|sbtd��t||	�\}
}|dksoJ�t|	|
fdd�\}	}
|	|
fS)z�
    Compute factors p and q from the private exponent d. We assume that n has
    no more than two factors. This function is adapted from code in PyCrypto.
    rU�rFTz2Unable to compute factors p and q from exponent d.)�reverse)�_MAX_RECOVERY_ATTEMPTS�powrrMr[�sorted)rXrWrh�ktot�t�spottedr^�k�candrNrOr`rrr�rsa_recover_prime_factorss2�$��rsc@s�eZdZdededededededdfd	d
�Ze�d�Ze�d�Ze�d
�Z	e�d�Z
e�d�Ze�d�Ze�d�Z
ddefdd�Zdd�Zdd�Zdd�ZdS)r rNrOrhrQrRrSr>r=cCs�t|t�rt|t�rt|t�rt|t�rt|t�rt|t�s"td��t|t�s+td��||_||_||_||_||_||_	||_
dS)NzNRSAPrivateNumbers p, q, d, dmp1, dmq1, iqmp arguments must all be an integers.zFRSAPrivateNumbers public_numbers must be an RSAPublicNumbers instance.)rEr/�	TypeErrorr=�_p�_q�_d�_dmp1�_dmq1�_iqmp�_public_numbers)rrNrOrhrQrRrSr>rrr�__init__@s4�������
�
zRSAPrivateNumbers.__init__rurvrwrxryrzr{NrcC�t|�}|�|�S�N)r�load_rsa_private_numbers�rrIrrr�private_keym�
zRSAPrivateNumbers.private_keycCsbt|t�stS|j|jko0|j|jko0|j|jko0|j|jko0|j|jko0|j|jko0|j	|j	kSr~)
rEr �NotImplementedrNrOrhrQrRrSr>�r�otherrrr�__eq__qs

�
�
�
�
�
�zRSAPrivateNumbers.__eq__cC�
||kSr~rr�rrr�__ne__�
zRSAPrivateNumbers.__ne__cCs$t|j|j|j|j|j|j|jf�Sr~)�hashrNrOrhrQrRrSr>rrrr�__hash__�s��zRSAPrivateNumbers.__hash__r~)r'r(r)r/r|r�read_only_propertyrNrOrhrQrRrSr>r
r�r�r�r�rrrrr ?s6������
�
%





r c@sbeZdZdedefdd�Ze�d�Ze�d�Zdde	fd	d
�Z
dd�Zd
d�Zdd�Z
dd�ZdS)r=rWrXcCs,t|t�r
t|t�std��||_||_dS)Nz,RSAPublicNumbers arguments must be integers.)rEr/rt�_e�_n)rrWrXrrrr|�s
zRSAPublicNumbers.__init__r�r�NrcCr}r~)r�load_rsa_public_numbersr�rrrr�r�zRSAPublicNumbers.public_keycCs
d�|�S)Nz$<RSAPublicNumbers(e={0.e}, n={0.n})>)r#rrrr�__repr__�r�zRSAPublicNumbers.__repr__cCs&t|t�stS|j|jko|j|jkSr~)rEr=r�rWrXr�rrrr��s
zRSAPublicNumbers.__eq__cCr�r~rr�rrrr��r�zRSAPublicNumbers.__ne__cCst|j|jf�Sr~)r�rWrXrrrrr��szRSAPublicNumbers.__hash__r~)r'r(r)r/r|rr�rWrXrrr�r�r�r�rrrrr=�s

r=r~)*r*r0�mathr�cryptographyr�cryptography.exceptionsrr�cryptography.hazmat.backendsr�'cryptography.hazmat.backends.interfacesr�cryptography.hazmat.primitivesrr	�*cryptography.hazmat.primitives._asymmetricr
�)cryptography.hazmat.primitives.asymmetricrrr2�ABCMetar
�RSAPrivateKeyWithSerializationr�RSAPublicKeyWithSerializationr/rJrGrVrYrbrcrergrk�Tuplers�objectr r=rrrr�<module>sv8@���
���������	
�/
���
�-Q

Выполнить команду


Для локальной разработки. Не используйте в интернете!