Ë
    íU.j�  ã                   ón   — d dl Z d dlmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
mZmZ d„ Zd„ Zd	„ Zd
„ Zd„ Zy)é    N)ÚAES)ÚSHA512)Ú_bcrypt_hash)Ústrxor)ÚtostrÚbchrÚbordc                 óz   — t        | «      dk  rt        d«      ‚t        j                  d| d d «      d   }|| dd  fS )Né   zInsufficient dataú>Ir   )ÚlenÚ
ValueErrorÚstructÚunpack)ÚdataÚvalues     ú[C:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\Crypto/PublicKey/_openssh.pyÚ	read_int4r   (   sD   € Ü
ˆ4ƒy�1‚}ÜÐ,Ó-Ð-Ü�M‰M˜$  R a Ó)¨!Ñ,€EØ�$�q�r�(ˆ?Ðó    c                 ód   — t        | «      \  }} t        | «      |k  rt        d«      ‚| d | | |d  fS )NzInsufficient data (V))r   r   r   )r   Úsizes     r   Ú
read_bytesr   /   s>   € Ü˜4“�J€Dˆ$Ü
ˆ4ƒy�4ÒÜÐ0Ó1Ð1Ø��ˆ;˜˜T˜U˜Ð#Ð#r   c                 ó8   — t        | «      \  }}t        |«      |fS )N)r   r   )r   ÚsÚds      r   Úread_stringr   6   s   € Ü�dÓ�D€A€qÜ�‹8�Qˆ;Ðr   c                 óh   — t        | «      D ]$  \  }}t        |«      |dz   dz  k7  sŒt        d«      ‚ y )Né   éÿ   zIncorrect padding)Ú	enumerater	   r   )ÚpadÚvÚxs      r   Úcheck_paddingr$   ;   s4   € Ü˜#–‰ˆˆ1Ü�‹7˜˜A™ ‘~Ó&ÜÐ0Ó1Ð1ñ r   c           
      ó0  — | j                  d«      st        d«      ‚| dd  } t        | «      \  }} t        | «      \  }} t        | «      \  }} t	        | «      \  }} |dk7  rt        d«      ‚t        | «      \  }} t        | «      \  }} | rt        d«      ‚t        |«      dz  dk7  rt        d	«      ‚|d
k(  r|}�n||fdk7  rt        d|›d|›�«      ‚t        |«      \  }	}t	        |«      \  }
}t        |	«      dk7  rt        d«      ‚|rt        d«      ‚t        j                  |«      j                  «       }g }d}t        dd«      D �]  }t        j                  |	t        j                  d|«      z   «      j                  «       }t        |d||d«      }t        j                  dgt        j                  d|«      ¢­Ž }t        |«      }t        d|
«      D ]j  }t        |dt        j                  |«      j                  «       |d«      }t        j                  dgt        j                  d|«      ¢­Ž }t        |||¬«       Œl |j!                  |d d «       �Œ dj#                  t%        |Ž D ��cg c]  \  }}t'        |«      t'        |«      z   ‘Œ c}}«      }t)        j                  |d d t(        j*                  d|dd ¬«      }|j-                  |«      }t	        |«      \  }}t	        |«      \  }}||k7  rt        d«      ‚t        |«      \  }}||fS c c}}w )Ns   openssh-key-v1 zIncorrect magic valueé   r   zWe only handle 1 key at a timezToo much dataé   r   zIncorrect payload lengthÚnone)z
aes256-ctrÚbcryptzUnsupported encryption scheme Ú/é   zIncorrect salt lengthzToo much data in kdfoptionss    OxychromaticBlowfishSwatDynamiteé   r   é   Fz	<IIIIIIIIz	>IIIIIIII)Úoutputé   r   é    é0   )ÚnonceÚinitial_valuezIncorrect checksum)Ú
startswithr   r   r   r   r   r   ÚnewÚdigestÚranger   Úpackr   r   Ú	bytearrayr   ÚappendÚjoinÚzipr   r   ÚMODE_CTRÚdecrypt)r   ÚpasswordÚ
ciphernameÚkdfnameÚ
kdfoptionsÚnumber_of_keysÚ_Ú	encryptedÚ	decryptedÚsaltÚ
iterationsÚ
pwd_sha512ÚstripesÚconstantÚcountÚsalt_sha512Úout_leÚoutÚaccÚaÚbÚresultÚcipherÚ	checkint1Ú	checkint2Ússh_names                             r   Úimport_openssh_private_genericrX   A   sò  € ð �?‰?Ð0Ô1ÜÐ0Ó1Ð1Ø��ˆ9€Dä" 4Ó(Ñ€J�Ü Ó%�M€GˆTÜ! $Ó'Ñ€J�Ü$ T›?Ñ€N�Dà˜ÒÜÐ9Ó:Ð:ä˜$Ó�G€A€tÜ  Ó&�O€IˆtÙÜ˜Ó)Ð)ä
ˆ9ƒ~˜Ñ˜QÒÜÐ3Ó4Ð4ð �VÒØŠ	à˜Ð Ð$<Ò<ÝÂjÑRYÐZÓ[Ð[ä% jÓ1ÑˆˆjÜ!*¨:Ó!6Ñˆ
�Jäˆt‹9˜Š?ÜÐ4Ó5Ð5ÙÜÐ:Ó;Ð;ä—Z‘Z Ó)×0Ñ0Ó2ˆ
àˆØ6ˆÜ˜1˜a—[ˆEÜ Ÿ*™* T¬F¯K©K¸¸eÓ,DÑ%DÓE×LÑLÓNˆKÜ! *¨a°¸hÈÓNˆFÜ—+‘+˜kÐO¬F¯M©M¸+ÀvÓ,NÒOˆCÜ˜C“.ˆCÜ˜1˜jÖ)�Ü% j°!´V·Z±ZÀ³_×5KÑ5KÓ5MÈxÐY^Ó_�Ü—k‘k +ÐS´·±¸kÈ6Ó0RÒS�Ü�s˜C¨Ö,ð *ð �N‰N˜3˜s ˜8Ö$ð !ð —‘¼¸g¹ÔG¹©v°°1œ4 ›7¤4¨£7›?¸ÒGÓHˆä—‘˜  ˜ÜŸ™Ø"Ø'-¨b°Ð'7ô9ˆð —N‘N 9Ó-ˆ	ä$ YÓ/Ñ€IˆyÜ$ YÓ/Ñ€IˆyØ�IÒÜÐ-Ó.Ð.Ü% iÓ0Ñ€Hˆià�YÐÐùó Hs   É-!L
)r   ÚCrypto.Cipherr   ÚCrypto.Hashr   ÚCrypto.Protocol.KDFr   ÚCrypto.Util.strxorr   ÚCrypto.Util.py3compatr   r   r	   r   r   r   r$   rX   © r   r   Ú<module>r_      s6   ðó> å Ý Ý ,Ý %ß 3Ñ 3òò$òò
2óFr   