ó
    Û°›j,!  ã                  ó  • S SK Jr  S SKrS SKrS SKrS SKJrJr  S SKJ	r
  S SKJrJr  S SKJr  S SKJr   " S S	\R&                  S
9r\r\R-                  \
R.                  R(                  5         " S S\R&                  S
9r\r\R-                  \
R.                  R0                  5        \
R.                  R4                  r\
R.                  R6                  r S       SS jjrSS jrSS jrSS jrSS jr SS jr!SS jr"Sr#SS jr$g)é    )ÚannotationsN)ÚgcdÚlcm)Úopenssl)Ú_serializationÚhashes)ÚAsymmetricPadding)Úutilsc                  ó~  • \ rS rSr\R
                  SS j5       r\\R
                  SS j5       5       r\R
                  SS j5       r	\R
                          SS j5       r
\R
                  SS j5       r\R
                          SS j5       r\R
                  SS j5       r\R
                  SS	 j5       rS
rg)ÚRSAPrivateKeyé   c                ó   • g)z#
Decrypts the provided ciphertext.
N© )ÚselfÚ
ciphertextÚpaddings      Új/home/mande/repo/quber/.venv/lib/python3.13/site-packages/cryptography/hazmat/primitives/asymmetric/rsa.pyÚdecryptÚRSAPrivateKey.decrypt   ó   � ó    c                ó   • g©z'
The bit length of the public modulus.
Nr   ©r   s    r   Úkey_sizeÚRSAPrivateKey.key_size   r   r   c                ó   • g)z4
The RSAPublicKey associated with this private key.
Nr   r   s    r   Ú
public_keyÚRSAPrivateKey.public_key    r   r   c                ó   • g)z
Signs the data.
Nr   )r   Údatar   Ú	algorithms       r   ÚsignÚRSAPrivateKey.sign&   r   r   c                ó   • g)z
Returns an RSAPrivateNumbers.
Nr   r   s    r   Úprivate_numbersÚRSAPrivateKey.private_numbers3   r   r   c                ó   • g©z&
Returns the key serialized as bytes.
Nr   )r   ÚencodingÚformatÚencryption_algorithms       r   Úprivate_bytesÚRSAPrivateKey.private_bytes9   r   r   c                ó   • g©z
Returns a copy.
Nr   r   s    r   Ú__copy__ÚRSAPrivateKey.__copy__D   r   r   c                ó   • g©z
Returns a deep copy.
Nr   ©r   Úmemos     r   Ú__deepcopy__ÚRSAPrivateKey.__deepcopy__J   r   r   r   N)r   Úbytesr   r	   Úreturnr9   ©r:   Úint©r:   ÚRSAPublicKey)r!   r9   r   r	   r"   zEasym_utils.Prehashed | hashes.HashAlgorithm | asym_utils.NoDigestInfor:   r9   )r:   ÚRSAPrivateNumbers)r*   ú_serialization.Encodingr+   z_serialization.PrivateFormatr,   z)_serialization.KeySerializationEncryptionr:   r9   )r:   r   )r6   Údictr:   r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__ÚabcÚabstractmethodr   Úpropertyr   r   r#   r&   r-   r1   r7   Ú__static_attributes__r   r   r   r   r      s%  † Ø×Ñóó ðð
 Ø×Ñóó ó ðð
 	×Ñóó ðð
 	×Ñð
àð
ð #ð
ð"ð	
ð 
ó
ó ð
ð 	×Ñóó ðð
 	×Ñðà)ðð -ðð Hð	ð
 
óó ðð 	×Ñóó ðð
 	×Ñóó ór   r   )Ú	metaclassc                  ó¶  • \ rS rSr\R
                  SS j5       r\\R
                  SS j5       5       r\R
                  SS j5       r	\R
                        SS j5       r
\R
                            SS j5       r\R
                          SS j5       r\R
                  SS j5       r\R
                  SS	 j5       r\R
                  SS
 j5       rSrg)r>   éU   c                ó   • g)z
Encrypts the given plaintext.
Nr   )r   Ú	plaintextr   s      r   ÚencryptÚRSAPublicKey.encryptV   r   r   c                ó   • gr   r   r   s    r   r   ÚRSAPublicKey.key_size\   r   r   c                ó   • g)z
Returns an RSAPublicNumbers
Nr   r   s    r   Úpublic_numbersÚRSAPublicKey.public_numbersc   r   r   c                ó   • gr)   r   )r   r*   r+   s      r   Úpublic_bytesÚRSAPublicKey.public_bytesi   r   r   c                ó   • g)z%
Verifies the signature of the data.
Nr   )r   Ú	signaturer!   r   r"   s        r   ÚverifyÚRSAPublicKey.verifys   r   r   c                ó   • g)z0
Recovers the original data from the signature.
Nr   )r   rZ   r   r"   s       r   Úrecover_data_from_signatureÚ(RSAPublicKey.recover_data_from_signature   r   r   c                ó   • g)z
Checks equality.
Nr   )r   Úothers     r   Ú__eq__ÚRSAPublicKey.__eq__Š   r   r   c                ó   • gr0   r   r   s    r   r1   ÚRSAPublicKey.__copy__�   r   r   c                ó   • gr4   r   r5   s     r   r7   ÚRSAPublicKey.__deepcopy__–   r   r   r   N)rN   r9   r   r	   r:   r9   r;   )r:   ÚRSAPublicNumbers)r*   r@   r+   z_serialization.PublicFormatr:   r9   )
rZ   r9   r!   r9   r   r	   r"   z+asym_utils.Prehashed | hashes.HashAlgorithmr:   ÚNone)rZ   r9   r   r	   r"   z5hashes.HashAlgorithm | asym_utils.NoDigestInfo | Noner:   r9   )ra   Úobjectr:   Úboolr=   )r6   rA   r:   r>   )rB   rC   rD   rE   rF   rG   rO   rH   r   rT   rW   r[   r^   rb   r1   r7   rI   r   r   r   r>   r>   U   se  † Ø×Ñóó ðð
 Ø×Ñóó ó ðð
 	×Ñóó ðð
 	×Ñðà)ðð ,ðð 
ó	ó ðð 	×Ñð	àð	ð ð	ð #ð		ð
 ?ð	ð 
ó	ó ð	ð 	×Ñðàðð #ðð Ið	ð
 
óó ðð 	×Ñóó ðð
 	×Ñóó ðð
 	×Ñóó ór   r>   c                óV   • [        X5        [        R                  R                  X5      $ ©N)Ú_verify_rsa_parametersÚrust_opensslÚrsaÚgenerate_private_key)Úpublic_exponentr   Úbackends      r   rq   rq   ¤   s#   € ô
 ˜?Ô5Ü×Ñ×0Ñ0°ÓKÐKr   c                óH   • U S;  a  [        S5      eUS:  a  [        S5      eg )N)é   i  zopublic_exponent must be either 3 (for legacy compatibility) or 65537. Almost everyone should choose 65537 here!i   z$key_size must be at least 1024-bits.©Ú
ValueError)rr   r   s     r   rn   rn   ­   s6   € Ø˜jÓ(Üð?ó
ð 	
ð
 �$ƒÜÐ?Ó@Ð@ð r   c                óh   • Su  p#XpTUS:”  a#  [        XE5      u  pgX&U-  -
  nXWX84u  pEp#US:”  a  M#  X!-  $ )zG
Modular Multiplicative Inverse. Returns x such that: (x*e) mod m == 1
)é   r   r   )Údivmod)	ÚeÚmÚx1Úx2ÚaÚbÚqÚrÚxns	            r   Ú_modinvr„   ¸   sL   € ð �F€BØ€qØ
ˆa‹%Ü�a‹|‰ˆØ�b‘&‰[ˆØ˜R�|‰ˆˆbð ˆa�%ð ‰6€Mr   c                óF   • U S::  d  US::  a  [        S5      e[        X5      $ )z>
Compute the CRT (q ** -1) % p value from RSA primes p and q.
ry   úValues can't be <= 1)rw   r„   )Úpr�   s     r   Úrsa_crt_iqmprˆ   Å   s'   € ð 	ˆAƒv��a“ÜÐ/Ó0Ð0Ü�1‹=Ðr   c                ó>   • U S::  d  US::  a  [        S5      eXS-
  -  $ )z[
Compute the CRT private_exponent % (p - 1) value from the RSA
private_exponent (d) and p.
ry   r†   rv   )Úprivate_exponentr‡   s     r   Úrsa_crt_dmp1r‹   Î   ó+   € ð
 ˜1Ó  Q£ÜÐ/Ó0Ð0Ø 1™uÑ%Ð%r   c                ó>   • U S::  d  US::  a  [        S5      eXS-
  -  $ )z[
Compute the CRT private_exponent % (q - 1) value from the RSA
private_exponent (d) and q.
ry   r†   rv   )rŠ   r�   s     r   Úrsa_crt_dmq1rŽ   Ø   rŒ   r   c                ót   • U S::  d  US::  d  US::  a  [        S5      e[        U [        US-
  US-
  5      5      $ )zÔ
Compute the RSA private_exponent (d) given the public exponent (e)
and the RSA primes p and q.

This uses the Carmichael totient function to generate the
smallest possible working value of the private exponent.
ry   r†   )rw   r„   r   )r{   r‡   r�   s      r   Úrsa_recover_private_exponentr�   â   s?   € ð 	ˆAƒv��a“˜1 ›6ÜÐ/Ó0Ð0Ü�1”c˜!˜a™%  Q¡Ó'Ó(Ð(r   iô  c                óN  • US::  d  US::  a  [        S5      eS[        SX-  U 5      :w  a  [        S5      eX!-  S-
  nUnUS-  S:X  a  US-  nUS-  S:X  a  M  SnSnU(       dŒ  U[        :  a‚  [        R                  " SU S-
  5      nUS-  nUnXƒ:  aI  [        XxU 5      n	U	S:w  a+  X�S-
  :w  a#  [        U	SU 5      S:X  a  [        U	S-   U 5      n
SnOUS-  nXƒ:  a  MI  U(       d  U[        :  a  M‚  U(       d  [        S	5      e[        U W
5      u  p¼US:X  d   e[        X«4SS
9u  p«X«4$ )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.
ry   zd, e can't be <= 1é   zn, d, e don't matché   r   FTz2Unable to compute factors p and q from exponent d.)Úreverse)rw   ÚpowÚ_MAX_RECOVERY_ATTEMPTSÚrandomÚrandintr   rz   Úsorted)Únr{   ÚdÚktotÚtÚspottedÚtriesr   ÚkÚcandr‡   r�   r‚   s                r   Úrsa_recover_prime_factorsr¢   ú   sM  € ð 	ˆAƒv��a“ÜÐ-Ó.Ð.Ø	ŒS��Q‘U˜AÓÓÜÐ.Ó/Ð/à‰5�1‰9€Dð 	€AØ
ˆa‰%�1‹*Ø�‰Fˆð ˆa‰%�1�*ð €GØ€EÞ˜%Ô"8Ó8Ü�NŠN˜1˜a !™eÓ$ˆØ�‰
ˆØˆà‹hÜ�q˜Q“<ˆDà�q‹y˜T¨!¡e›_´°T¸1¸a³ÀAÓ1Eô ˜˜q™ !Ó$�Ø�ØØ�‰FˆAð �hö ˜%Ô"8Õ8ö ÜÐMÓNÐNä�!�Q‹<�D€AØ�‹6€Mˆ6Ü�1�& $Ñ'�D€AØˆ6€Mr   rm   )rr   r<   r   r<   rs   z
typing.Anyr:   r   )rr   r<   r   r<   r:   ri   )r{   r<   r|   r<   r:   r<   )r‡   r<   r�   r<   r:   r<   )rŠ   r<   r‡   r<   r:   r<   )rŠ   r<   r�   r<   r:   r<   )r{   r<   r‡   r<   r�   r<   r:   r<   )rš   r<   r{   r<   r›   r<   r:   ztuple[int, int])%Ú
__future__r   rF   r—   ÚtypingÚmathr   r   Ú"cryptography.hazmat.bindings._rustr   ro   Úcryptography.hazmat.primitivesr   r   Ú*cryptography.hazmat.primitives._asymmetricr	   Ú)cryptography.hazmat.primitives.asymmetricr
   Ú
asym_utilsÚABCMetar   ÚRSAPrivateKeyWithSerializationÚregisterrp   r>   ÚRSAPublicKeyWithSerializationr?   rh   rq   rn   r„   rˆ   r‹   rŽ   r�   r–   r¢   r   r   r   Ú<module>r¯      s  ðõ
 #ã 
Û Û ß å Fß AÝ HÝ Iô<˜cŸk™kò <ð~ "/Ð Ø × Ñ �|×'Ñ'×5Ñ5Ô 6ôE˜SŸ[™[ò EðP !-Ð Ø × Ñ �l×&Ñ&×3Ñ3Ô 4à ×$Ñ$×6Ñ6Ð Ø×#Ñ#×4Ñ4Ð ð ðLØðLàðLð ðLð õ	LôAô
ôô&ô&ô)ð* Ð õ-r   