Ë
    îO´j,!  ã                  ó  — d dl mZ d dlZd dlZd dlZd dlmZmZ d dlm	Z
 d dlmZmZ d dlmZ d dlmZ  G d„ d	ej&                  ¬
«      ZeZej-                  e
j.                  j(                  «        G d„ dej&                  ¬
«      ZeZej-                  e
j.                  j0                  «       e
j.                  j4                  Ze
j.                  j6                  Z	 d	 	 	 	 	 	 	 dd„Zdd„Zdd„Zdd„Zdd„Z dd„Z!dd„Z"dZ#dd„Z$y)é    )ÚannotationsN)ÚgcdÚlcm)Úopenssl)Ú_serializationÚhashes)ÚAsymmetricPadding)Úutilsc                  óf  — e Zd Zej                  d
d„«       Zeej                  dd„«       «       Zej                  dd„«       Zej                  	 	 	 	 	 	 	 	 dd„«       Z	ej                  dd„«       Z
ej                  	 	 	 	 	 	 	 	 dd„«       Zej                  dd„«       Zej                  dd„«       Zy	)ÚRSAPrivateKeyc                 ó   — y)z3
        Decrypts the provided ciphertext.
        N© )ÚselfÚ
ciphertextÚpaddings      ú„/var/www/origus_pro_usr/data/www/origus.pro/core/.venv/lib/python3.12/site-packages/cryptography/hazmat/primitives/asymmetric/rsa.pyÚdecryptzRSAPrivateKey.decrypt   ó   � ó    c                 ó   — y©z7
        The bit length of the public modulus.
        Nr   ©r   s    r   Úkey_sizezRSAPrivateKey.key_size   r   r   c                 ó   — y)zD
        The RSAPublicKey associated with this private key.
        Nr   r   s    r   Ú
public_keyzRSAPrivateKey.public_key    r   r   c                 ó   — y)z!
        Signs the data.
        Nr   )r   Údatar   Ú	algorithms       r   ÚsignzRSAPrivateKey.sign&   r   r   c                 ó   — y)z/
        Returns an RSAPrivateNumbers.
        Nr   r   s    r   Úprivate_numberszRSAPrivateKey.private_numbers3   r   r   c                 ó   — y©z6
        Returns the key serialized as bytes.
        Nr   )r   ÚencodingÚformatÚencryption_algorithms       r   Úprivate_byteszRSAPrivateKey.private_bytes9   r   r   c                 ó   — y©z!
        Returns a copy.
        Nr   r   s    r   Ú__copy__zRSAPrivateKey.__copy__D   r   r   c                 ó   — y©z&
        Returns a deep copy.
        Nr   ©r   Úmemos     r   Ú__deepcopy__zRSAPrivateKey.__deepcopy__J   r   r   N)r   Úbytesr   r	   Úreturnr0   ©r1   Úint©r1   ÚRSAPublicKey)r   r0   r   r	   r   zEasym_utils.Prehashed | hashes.HashAlgorithm | asym_utils.NoDigestInfor1   r0   )r1   ÚRSAPrivateNumbers)r$   ú_serialization.Encodingr%   z_serialization.PrivateFormatr&   z)_serialization.KeySerializationEncryptionr1   r0   )r1   r   )r.   Údictr1   r   )Ú__name__Ú
__module__Ú__qualname__ÚabcÚabstractmethodr   Úpropertyr   r   r   r!   r'   r*   r/   r   r   r   r   r      s%  „ Ø×Ñòó ðð
 Ø×Ñòó ó ðð
 	×Ñòó ðð
 	×Ñð
àð
ð #ð
ð"ð	
ð 
ò
ó ð
ð 	×Ñòó ðð
 	×Ñðà)ðð -ðð Hð	ð
 
òó ðð 	×Ñòó ðð
 	×Ñòó ñr   r   )Ú	metaclassc                  óœ  — e Zd Zej                  dd„«       Zeej                  dd„«       «       Zej                  dd„«       Zej                  	 	 	 	 	 	 dd„«       Z	ej                  	 	 	 	 	 	 	 	 	 	 dd„«       Z
ej                  	 	 	 	 	 	 	 	 dd„«       Zej                  dd„«       Zej                  dd„«       Zej                  dd	„«       Zy
)r5   c                 ó   — y)z/
        Encrypts the given plaintext.
        Nr   )r   Ú	plaintextr   s      r   ÚencryptzRSAPublicKey.encryptV   r   r   c                 ó   — yr   r   r   s    r   r   zRSAPublicKey.key_size\   r   r   c                 ó   — y)z-
        Returns an RSAPublicNumbers
        Nr   r   s    r   Úpublic_numberszRSAPublicKey.public_numbersc   r   r   c                 ó   — yr#   r   )r   r$   r%   s      r   Úpublic_byteszRSAPublicKey.public_bytesi   r   r   c                 ó   — y)z5
        Verifies the signature of the data.
        Nr   )r   Ú	signaturer   r   r   s        r   ÚverifyzRSAPublicKey.verifys   r   r   c                 ó   — y)z@
        Recovers the original data from the signature.
        Nr   )r   rJ   r   r   s       r   Úrecover_data_from_signaturez(RSAPublicKey.recover_data_from_signature   r   r   c                 ó   — y)z"
        Checks equality.
        Nr   )r   Úothers     r   Ú__eq__zRSAPublicKey.__eq__Š   r   r   c                 ó   — yr)   r   r   s    r   r*   zRSAPublicKey.__copy__�   r   r   c                 ó   — yr,   r   r-   s     r   r/   zRSAPublicKey.__deepcopy__–   r   r   N)rB   r0   r   r	   r1   r0   r2   )r1   ÚRSAPublicNumbers)r$   r7   r%   z_serialization.PublicFormatr1   r0   )
rJ   r0   r   r0   r   r	   r   z+asym_utils.Prehashed | hashes.HashAlgorithmr1   ÚNone)rJ   r0   r   r	   r   z5hashes.HashAlgorithm | asym_utils.NoDigestInfo | Noner1   r0   )rO   Úobjectr1   Úboolr4   )r.   r8   r1   r5   )r9   r:   r;   r<   r=   rC   r>   r   rF   rH   rK   rM   rP   r*   r/   r   r   r   r5   r5   U   se  „ Ø×Ñòó ðð
 Ø×Ñòó ó ðð
 	×Ñòó ðð
 	×Ñðà)ðð ,ðð 
ò	ó ðð 	×Ñð	àð	ð ð	ð #ð		ð
 ?ð	ð 
ò	ó ð	ð 	×Ñðàðð #ðð Ið	ð
 
òó ðð 	×Ñòó ðð
 	×Ñòó ðð
 	×Ñòó ñr   r5   c                óZ   — t        | |«       t        j                  j                  | |«      S ©N)Ú_verify_rsa_parametersÚrust_opensslÚrsaÚgenerate_private_key)Úpublic_exponentr   Úbackends      r   r\   r\   ¤   s'   € ô
 ˜?¨HÔ5Ü×Ñ×0Ñ0°À(ÓKÐKr   c                óB   — | dvrt        d«      ‚|dk  rt        d«      ‚y )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)r]   r   s     r   rY   rY   ­   s6   € Ø˜jÑ(Üð?ó
ð 	
ð
 �$‚ÜÐ?Ó@Ð@ð r   c                óx   — d\  }}| |}}|dkD  r(t        ||«      \  }}|||z  z
  }||||f\  }}}}|dkD  rŒ(||z  S )zO
    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   Ú_modinvro   ¸   sb   € ð �F€BˆØˆa€q€AØ
ˆaŠ%Ü�a˜‹|‰ˆˆ1Ø�!�b‘&‰[ˆØ˜!˜R �|‰ˆˆ1ˆb�"ð ˆa‹%ð �‰6€Mr   c                óD   — | dk  s|dk  rt        d«      ‚t        || «      S )zF
    Compute the CRT (q ** -1) % p value from RSA primes p and q.
    rd   úValues can't be <= 1)rb   ro   )Úprl   s     r   Úrsa_crt_iqmprs   Å   s)   € ð 	ˆA‚v��a’ÜÐ/Ó0Ð0Ü�1�a‹=Ðr   c                ó<   — | dk  s|dk  rt        d«      ‚| |dz
  z  S )zg
    Compute the CRT private_exponent % (p - 1) value from the RSA
    private_exponent (d) and p.
    rd   rq   ra   )Úprivate_exponentrr   s     r   Úrsa_crt_dmp1rv   Î   ó-   € ð
 ˜1Ò  Q¢ÜÐ/Ó0Ð0Ø˜q 1™uÑ%Ð%r   c                ó<   — | dk  s|dk  rt        d«      ‚| |dz
  z  S )zg
    Compute the CRT private_exponent % (q - 1) value from the RSA
    private_exponent (d) and q.
    rd   rq   ra   )ru   rl   s     r   Úrsa_crt_dmq1ry   Ø   rw   r   c                ón   — | dk  s
|dk  s|dk  rt        d«      ‚t        | t        |dz
  |dz
  «      «      S )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.
    rd   rq   )rb   ro   r   )rf   rr   rl   s      r   Úrsa_recover_private_exponentr{   â   s?   € ð 	ˆA‚v��a’˜1 š6ÜÐ/Ó0Ð0Ü�1”c˜!˜a™%  Q¡Ó'Ó(Ð(r   iô  c                ó(  — |dk  s|dk  rt        d«      ‚dt        d||z  | «      k7  rt        d«      ‚||z  dz
  }|}|dz  dk(  r|dz  }|dz  dk(  rŒd}d}|s�|t        k  rxt        j                  d| dz
  «      }|dz  }|}||k  rGt        ||| «      }	|	dk7  r*|	| dz
  k7  r"t        |	d| «      dk(  rt        |	dz   | «      }
d}n|dz  }||k  rŒG|s
|t        k  rŒx|st        d	«      ‚t        | 
«      \  }}|dk(  sJ ‚t        |
|fd¬
«      \  }
}|
|fS )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.
    rd   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)rb   ÚpowÚ_MAX_RECOVERY_ATTEMPTSÚrandomÚrandintr   re   Úsorted)Únrf   ÚdÚktotÚtÚspottedÚtriesrj   ÚkÚcandrr   rl   rm   s                r   Úrsa_recover_prime_factorsr�   ú   sa  € ð 	ˆA‚v��a’ÜÐ-Ó.Ð.Ø	ŒS��Q˜‘U˜AÓÒÜÐ.Ó/Ð/àˆq‰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 a¨!¡eš_´°T¸1¸a³ÀAÒ1Eô ˜˜q™ !Ó$�Ø�ØØ�‰FˆAð �$‹hñ ˜%Ô"8Ó8ñ ÜÐMÓNÐNä�!�Q‹<�D€A€qØ�Š6€Mˆ6Ü�1�a�& $Ô'�D€A€qØˆqˆ6€Mr   rX   )r]   r3   r   r3   r^   z
typing.Anyr1   r   )r]   r3   r   r3   r1   rT   )rf   r3   rg   r3   r1   r3   )rr   r3   rl   r3   r1   r3   )ru   r3   rr   r3   r1   r3   )ru   r3   rl   r3   r1   r3   )rf   r3   rr   r3   rl   r3   r1   r3   )r…   r3   rf   r3   r†   r3   r1   ztuple[int, int])%Ú
__future__r   r<   r‚   ÚtypingÚmathr   r   Ú"cryptography.hazmat.bindings._rustr   rZ   Úcryptography.hazmat.primitivesr   r   Ú*cryptography.hazmat.primitives._asymmetricr	   Ú)cryptography.hazmat.primitives.asymmetricr
   Ú
asym_utilsÚABCMetar   ÚRSAPrivateKeyWithSerializationÚregisterr[   r5   ÚRSAPublicKeyWithSerializationr6   rS   r\   rY   ro   rs   rv   ry   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   