+
    Ÿ1j,!  ã                  ó"  € ^ RI Ht ^ RIt^ RIt^ RIt^ RIHtHt ^ RIH	t
 ^ RIHtHt ^ RIHt ^ RIHt  ! R R	]P&                  R
7      t]t]P-                  ]
P.                  P(                  4        ! R R]P&                  R
7      t]t]P-                  ]
P.                  P0                  4       ]
P.                  P4                  t]
P.                  P6                  tRR R lltR R ltR R ltR R ltR R lt R R lt!R R lt"Rt#R R lt$R# )é    )ÚannotationsN)ÚgcdÚlcm)Úopenssl)Ú_serializationÚhashes)ÚAsymmetricPadding)Úutilsc                  óp  € ] tR t^t]P
                  R R l4       t]]P
                  R R l4       4       t]P
                  R R l4       t	]P
                  R R l4       t
]P
                  R	 R
 l4       t]P
                  R R l4       t]P
                  R R l4       t]P
                  R R l4       tRtR# )ÚRSAPrivateKeyc               ó$   € V ^8„  d   QhRRRRRR/# )é   Ú
ciphertextÚbytesÚpaddingr	   Úreturn© )Úformats   "ÚMlib/python3.14/site-packages/cryptography/hazmat/primitives/asymmetric/rsa.pyÚ__annotate__ÚRSAPrivateKey.__annotate__   s"   € ÷ ñ  %ð Ð2Cð Èñ ó    c                ó   € R# )z#
Decrypts the provided ciphertext.
Nr   )Úselfr   r   s   &&&r   ÚdecryptÚRSAPrivateKey.decrypt   ó   ‚ r   c               ó   € V ^8„  d   QhRR/# ©r   r   Úintr   )r   s   "r   r   r      ó   € ÷ ñ ˜#ñ r   c                ó   € R# ©z'
The bit length of the public modulus.
Nr   ©r   s   &r   Úkey_sizeÚRSAPrivateKey.key_size   r   r   c               ó   € V ^8„  d   QhRR/# ©r   r   ÚRSAPublicKeyr   )r   s   "r   r   r   !   s   € ÷ ñ ˜Lñ r   c                ó   € R# )z4
The RSAPublicKey associated with this private key.
Nr   r$   s   &r   Ú
public_keyÚRSAPrivateKey.public_key    r   r   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r   Údatar   r   r	   Ú	algorithmzEasym_utils.Prehashed | hashes.HashAlgorithm | asym_utils.NoDigestInfor   r   )r   s   "r   r   r   '   s2   € ÷ 
ñ 
àð
ð #ð
ð"ð	
ð 
ñ
r   c                ó   € R# )z
Signs the data.
Nr   )r   r.   r   r/   s   &&&&r   ÚsignÚRSAPrivateKey.sign&   r   r   c               ó   € V ^8„  d   QhRR/# )r   r   ÚRSAPrivateNumbersr   )r   s   "r   r   r   4   s   € ÷ ñ Ð!2ñ r   c                ó   € R# )z
Returns an RSAPrivateNumbers.
Nr   r$   s   &r   Úprivate_numbersÚRSAPrivateKey.private_numbers3   r   r   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r   Úencodingú_serialization.Encodingr   z_serialization.PrivateFormatÚencryption_algorithmz)_serialization.KeySerializationEncryptionr   r   r   )r   s   "r   r   r   :   s3   € ÷ ñ à)ðð -ðð Hð	ð
 
ñr   c                ó   € R# ©z&
Returns the key serialized as bytes.
Nr   )r   r9   r   r;   s   &&&&r   Úprivate_bytesÚRSAPrivateKey.private_bytes9   r   r   c               ó   € V ^8„  d   QhRR/# )r   r   r   r   )r   s   "r   r   r   E   s   € ÷ ñ ˜-ñ r   c                ó   € R# ©z
Returns a copy.
Nr   r$   s   &r   Ú__copy__ÚRSAPrivateKey.__copy__D   r   r   c               ó    € V ^8„  d   QhRRRR/# )r   ÚmemoÚdictr   r   r   )r   s   "r   r   r   K   s   € ÷ ñ  ð ¨-ñ r   c                ó   € R# ©z
Returns a deep copy.
Nr   ©r   rF   s   &&r   Ú__deepcopy__ÚRSAPrivateKey.__deepcopy__J   r   r   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__ÚabcÚabstractmethodr   Úpropertyr%   r+   r1   r6   r>   rC   rK   Ú__static_attributes__r   r   r   r   r      sØ   † Ø×Ñôó ðð
 Ø×Ñôó ó ðð
 	×Ñôó ðð
 	×Ñô
ó ð
ð 	×Ñôó ðð
 	×Ñôó ðð 	×Ñôó ðð
 	×Ñôó ôr   r   )Ú	metaclassc                  óš  € ] tR t^Ut]P
                  R R l4       t]]P
                  R R l4       4       t]P
                  R R l4       t	]P
                  R R l4       t
]P
                  R	 R
 l4       t]P
                  R R l4       t]P
                  R R l4       t]P
                  R R l4       t]P
                  R R l4       tRtR# )r)   c               ó$   € V ^8„  d   QhRRRRRR/# )r   Ú	plaintextr   r   r	   r   r   )r   s   "r   r   ÚRSAPublicKey.__annotate__W   s"   € ÷ ñ  ð Ð1Bð Àuñ r   c                ó   € R# )z
Encrypts the given plaintext.
Nr   )r   rX   r   s   &&&r   ÚencryptÚRSAPublicKey.encryptV   r   r   c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   rY   ^   r!   r   c                ó   € R# r#   r   r$   s   &r   r%   ÚRSAPublicKey.key_size\   r   r   c               ó   € V ^8„  d   QhRR/# )r   r   ÚRSAPublicNumbersr   )r   s   "r   r   rY   d   s   € ÷ ñ Ð 0ñ r   c                ó   € R# )z
Returns an RSAPublicNumbers
Nr   r$   s   &r   Úpublic_numbersÚRSAPublicKey.public_numbersc   r   r   c               ó$   € V ^8„  d   QhRRRRRR/# )r   r9   r:   r   z_serialization.PublicFormatr   r   r   )r   s   "r   r   rY   j   s(   € ÷ ñ à)ðð ,ðð 
ñ	r   c                ó   € R# r=   r   )r   r9   r   s   &&&r   Úpublic_bytesÚRSAPublicKey.public_bytesi   r   r   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR	/# )
r   Ú	signaturer   r.   r   r	   r/   z+asym_utils.Prehashed | hashes.HashAlgorithmr   ÚNoner   )r   s   "r   r   rY   t   s<   € ÷ 	ñ 	àð	ð ð	ð #ð		ð
 ?ð	ð 
ñ	r   c                ó   € R# )z%
Verifies the signature of the data.
Nr   )r   rj   r.   r   r/   s   &&&&&r   ÚverifyÚRSAPublicKey.verifys   r   r   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r   rj   r   r   r	   r/   z5hashes.HashAlgorithm | asym_utils.NoDigestInfo | Noner   r   )r   s   "r   r   rY   €   s3   € ÷ ñ àðð #ðð Ið	ð
 
ñr   c                ó   € R# )z0
Recovers the original data from the signature.
Nr   )r   rj   r   r/   s   &&&&r   Úrecover_data_from_signatureÚ(RSAPublicKey.recover_data_from_signature   r   r   c               ó    € V ^8„  d   QhRRRR/# )r   ÚotherÚobjectr   Úboolr   )r   s   "r   r   rY   ‹   s   € ÷ ñ ˜Fð  tñ r   c                ó   € R# )z
Checks equality.
Nr   )r   rt   s   &&r   Ú__eq__ÚRSAPublicKey.__eq__Š   r   r   c               ó   € V ^8„  d   QhRR/# r(   r   )r   s   "r   r   rY   ‘   s   € ÷ ñ ˜,ñ r   c                ó   € R# rB   r   r$   s   &r   rC   ÚRSAPublicKey.__copy__   r   r   c               ó    € V ^8„  d   QhRRRR/# )r   rF   rG   r   r)   r   )r   s   "r   r   rY   —   s   € ÷ ñ  ð ¨,ñ r   c                ó   € R# rI   r   rJ   s   &&r   rK   ÚRSAPublicKey.__deepcopy__–   r   r   r   N)rM   rN   rO   rP   rQ   rR   r[   rS   r%   rc   rg   rm   rq   rx   rC   rK   rT   r   r   r   r)   r)   U   sò   † Ø×Ñôó ðð
 Ø×Ñôó ó ðð
 	×Ñôó ðð
 	×Ñôó ðð 	×Ñô	ó ð	ð 	×Ñôó ðð 	×Ñôó ðð
 	×Ñôó ðð
 	×Ñôó ôr   r)   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r   Úpublic_exponentr    r%   Úbackendz
typing.Anyr   r   r   )r   s   "r   r   r   ¤   s6   € ÷ Lñ LØðLàðLð ðLð ñ	Lr   c                óV   € \        W4       \        P                  P                  W4      # ©N)Ú_verify_rsa_parametersÚrust_opensslÚrsaÚgenerate_private_key)r   r%   r‚   s   &&&r   rˆ   rˆ   ¤   s#   € ô
 ˜?Ô5Ü×Ñ×0Ñ0°ÓKÐKr   c               ó$   € V ^8„  d   QhRRRRRR/# )r   r   r    r%   r   rk   r   )r   s   "r   r   r   ­   s&   € ÷ Añ A¨Cð A¸3ð AÀ4ñ Ar   c                óN   € V R9  d   \        R4      hVR8  d   \        R4      hR# )é   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.N)r‹   i  ©Ú
ValueError)r   r%   s   &&r   r…   r…   ­   s6   € Ø˜jÔ(Üð?ó
ð 	
ð
 $„ÜÐ?Ó@Ð@ñ r   c               ó$   € V ^8„  d   QhRRRRRR/# )r   Úer    Úmr   r   )r   s   "r   r   r   ¸   s!   € ÷ 
ñ 
ˆsð 
sð 
˜sñ 
r   c                ót   € ^^ r2YrTV^ 8”  d&   \        WE4      w  rgW&V,          ,
          pWWW83w  rEr#K,  W!,          # )zG
Modular Multiplicative Inverse. Returns x such that: (x*e) mod m == 1
)Údivmod)	r   r   Úx1Úx2ÚaÚbÚqÚrÚxns	   &&       r   Ú_modinvrš   ¸   sC   € ð ˆØ€qØ
ˆaŒ%Üa‹|‰ˆØb•&[ˆØ˜R|‰ˆˆb‘"Ø6€Mr   c               ó$   € V ^8„  d   QhRRRRRR/# )r   Úpr    r—   r   r   )r   s   "r   r   r   Å   s!   € ÷ ñ Cð ˜Cð  Cñ r   c                óJ   € V ^8:  g   V^8:  d   \        R4      h\        W4      # )z>
Compute the CRT (q ** -1) % p value from RSA primes p and q.
úValues can't be <= 1)r   rš   )rœ   r—   s   &&r   Úrsa_crt_iqmprŸ   Å   s'   € ð 	ˆA„va”ÜÐ/Ó0Ð0Ü1‹=Ðr   c               ó$   € V ^8„  d   QhRRRRRR/# )r   Úprivate_exponentr    rœ   r   r   )r   s   "r   r   r   Î   ó!   € ÷ &ñ & 3ð &¨3ð &°3ñ &r   c                óR   € V ^8:  g   V^8:  d   \        R4      hW^,
          ,          # )z[
Compute the CRT private_exponent % (p - 1) value from the RSA
private_exponent (d) and p.
rž   rŒ   )r¡   rœ   s   &&r   Úrsa_crt_dmp1r¤   Î   ó+   € ð
 ˜1Ô  Q¤ÜÐ/Ó0Ð0Ø 1uÕ%Ð%r   c               ó$   € V ^8„  d   QhRRRRRR/# )r   r¡   r    r—   r   r   )r   s   "r   r   r   Ø   r¢   r   c                óR   € V ^8:  g   V^8:  d   \        R4      hW^,
          ,          # )z[
Compute the CRT private_exponent % (q - 1) value from the RSA
private_exponent (d) and q.
rž   rŒ   )r¡   r—   s   &&r   Úrsa_crt_dmq1r¨   Ø   r¥   r   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r   r   r    rœ   r—   r   r   )r   s   "r   r   r   â   s(   € ÷ )ñ ) Cð )¨Cð )°Cð )¸Cñ )r   c                óŠ   € V ^8:  g   V^8:  g   V^8:  d   \        R4      h\        V \        V^,
          V^,
          4      4      # )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.
rž   )r   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               ó(   € V ^8„  d   QhRRRRRRRR/# )r   Únr    r   Údr   ztuple[int, int]r   )r   s   "r   r   r   ú   s(   € ÷ -ñ - ð -¨ð -°ð -¸ñ -r   c                ó€  € V^8:  g   V^8:  d   \        R4      h^\        ^W,          V 4      8w  d   \        R4      hW!,          ^,
          pTpV^,          ^ 8X  d   V^,          pK  Rp^ pV'       g‘   V\        8  d†   \        P                  ! ^V ^,
          4      pV^,          pTpWƒ8  g   KD  \        WxV 4      p	V	^8w  d7   W^,
          8w  d*   \        V	^V 4      ^8X  d   \        V	^,           V 4      p
RpK  V^,          pK\  V'       g   \        R4      h\        V X
4      w  r¼V^ 8X  g   Q h\        W«3RR7      w  r«W«3# )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.
zd, e can't be <= 1zn, d, e don't matchFTz2Unable to compute factors p and q from exponent d.)Úreverse)r   ÚpowÚ_MAX_RECOVERY_ATTEMPTSÚrandomÚrandintr   r’   Úsorted)r­   r   r®   ÚktotÚtÚspottedÚtriesr•   ÚkÚcandrœ   r—   r˜   s   &&&          r   Úrsa_recover_prime_factorsr¼   ú   s*  € ð 	ˆA„va”ÜÐ-Ó.Ð.Ø	ŒSQ•U˜AÓÔÜÐ.Ó/Ð/à519€Dð 	€AØ
ˆa%1Œ*ØFŠð €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ßÜÐMÓNÐNä!Q‹<D€AØŒ6€Mˆ6Ü1& $Ô'D€AØˆ6€Mr   r„   )%Ú
__future__r   rQ   r³   ÚtypingÚmathr   r   Ú"cryptography.hazmat.bindings._rustr   r†   Úcryptography.hazmat.primitivesr   r   Ú*cryptography.hazmat.primitives._asymmetricr	   Ú)cryptography.hazmat.primitives.asymmetricr
   Ú
asym_utilsÚABCMetar   ÚRSAPrivateKeyWithSerializationÚregisterr‡   r)   ÚRSAPublicKeyWithSerializationr4   ra   rˆ   r…   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õAõ
õõ&õ&õ)ð* Ð ÷-r   