Ë
    zñ�jT  ã                   óÚ   — d dl Z d dlZd dlmZ d dlmZmZ d dlmZm	Z	 d dl
mZ d dlmZ d dlmZ  edd	«      \  ZZ edd	«      D � cg c]
  }  e| «      ‘Œ c} \  ZZ G d
„ d«      Zyc c} w )é    N)ÚUnsupportedAlgorithm)Úconstant_timeÚserialization)ÚX25519PrivateKeyÚX25519PublicKey)ÚMessage)Úbyte_chr)ÚSSHExceptioné   é    c                   óX   — e Zd Zej                  Zd„ Zed„ «       Zd„ Z	d„ Z
d„ Zd„ Zd„ Zy)	ÚKexCurve25519c                 ó    — || _         d | _        y ©N)Ú	transportÚkey)Úselfr   s     úX/var/www/api.ozpay.ru/ozpay/venv/lib/python3.12/site-packages/paramiko/kex_curve25519.pyÚ__init__zKexCurve25519.__init__   s   € Ø"ˆŒØˆ�ó    c                 óL   — 	 t        j                  «        y# t        $ r Y yw xY w)NTF)r   Úgenerater   )Úclss    r   Úis_availablezKexCurve25519.is_available   s,   € ð	Ü×%Ñ%Ô'ð øô $ò 	Ùð	ús   ‚ —	#¢#c                 ó~   — | j                   j                  |«      }t        j                  |d«      rt	        d«      ‚|S )Ns                                    z.peer's curve25519 public value has wrong order)r   Úexchanger   Úbytes_eqr
   )r   Úpeer_keyÚsecrets      r   Ú_perform_exchangezKexCurve25519._perform_exchange$   s=   € Ø—‘×"Ñ" 8Ó,ˆÜ×!Ñ! &¨,Ô7ÜØ@óð ð ˆr   c                 ó&  — t        j                  «       | _        | j                  j                  r | j                  j                  t        «       y t        «       }|j                  t        «       |j                  | j                  j                  «       j                  t        j                  j                  t        j                   j                  «      «       | j                  j#                  |«       | j                  j                  t$        «       y r   )r   r   r   r   Úserver_modeÚ_expect_packetÚ_MSG_KEXECDH_INITr   Úadd_byteÚc_MSG_KEXECDH_INITÚ
add_stringÚ
public_keyÚpublic_bytesr   ÚEncodingÚRawÚPublicFormatÚ_send_messageÚ_MSG_KEXECDH_REPLY)r   Úms     r   Ú	start_kexzKexCurve25519.start_kex,   s´   € Ü#×,Ñ,Ó.ˆŒØ�>‰>×%Ò%Ø�N‰N×)Ñ)Ô*;Ô<Øä‹IˆØ	�
‰
Ô%Ô&Ø	�‰Ø�H‰H×ÑÓ!×.Ñ.Ü×&Ñ&×*Ñ*¬M×,FÑ,F×,JÑ,Jóô	
ð
 	�‰×$Ñ$ QÔ'Ø�‰×%Ñ%Ô&8Õ9r   c                 óö   — | j                   j                  r|t        k(  r| j                  |«      S | j                   j                  s|t        k(  r| j                  |«      S t        dj                  |«      «      ‚)Nz.KexCurve25519 asked to handle packet type {:d})r   r"   r$   Ú_parse_kexecdh_initr.   Ú_parse_kexecdh_replyr
   Úformat)r   Úptyper/   s      r   Ú
parse_nextzKexCurve25519.parse_next<   si   € Ø�>‰>×%Ò%¨5Ô4EÒ+EØ×+Ñ+¨AÓ.Ð.Ø—‘×+Ò+°Ô:LÒ1LØ×,Ñ,¨QÓ/Ð/ÜØ<×CÑCÀEÓJó
ð 	
r   c                 ó2  — |j                  «       }t        j                  |«      }| j                  |«      }t	        t        j                  |«      d«      }t        «       }|j                  | j                  j                  | j                  j                  | j                  j                  | j                  j                  «       | j                  j                  «       j                  «       }| j                   j#                  «       j%                  t&        j(                  j*                  t&        j,                  j*                  «      }|j/                  |«       |j/                  |«       |j/                  |«       |j1                  |«       | j3                  |j                  «       «      j5                  «       }| j                  j7                  ||«       | j                  j                  «       j9                  || j                  j:                  «      }	t        «       }|j=                  t>        «       |j/                  |«       |j/                  |«       |j/                  |	«       | j                  jA                  |«       | j                  jC                  «        y ©Né   )"Ú
get_stringr   Úfrom_public_bytesr    ÚintÚbinasciiÚhexlifyr   Úaddr   Úremote_versionÚlocal_versionÚremote_kex_initÚlocal_kex_initÚget_server_keyÚasbytesr   r(   r)   r   r*   r+   r,   r'   Ú	add_mpintÚ	hash_algoÚdigestÚ_set_K_HÚsign_ssh_dataÚhost_key_typer%   Úc_MSG_KEXECDH_REPLYr-   Ú_activate_outbound)
r   r/   Úpeer_key_bytesr   ÚKÚhmÚserver_key_bytesÚexchange_key_bytesÚHÚsigs
             r   r2   z!KexCurve25519._parse_kexecdh_initE   sÒ  € ØŸ™›ˆÜ"×4Ñ4°^ÓDˆØ×"Ñ" 8Ó,ˆÜ”× Ñ  Ó# RÓ(ˆä‹YˆØ
�‰Ø�N‰N×)Ñ)Ø�N‰N×(Ñ(Ø�N‰N×*Ñ*Ø�N‰N×)Ñ)ô		
ð  Ÿ>™>×8Ñ8Ó:×BÑBÓDÐØ!ŸX™X×0Ñ0Ó2×?Ñ?Ü×"Ñ"×&Ñ&¬×(BÑ(B×(FÑ(Fó
Ðð 	�‰Ð&Ô'Ø
�‰�nÔ%Ø
�‰Ð(Ô)Ø
�‰�QŒØ�N‰N˜2Ÿ:™:›<Ó(×/Ñ/Ó1ˆØ�‰×Ñ  1Ô%Ø�n‰n×+Ñ+Ó-×;Ñ;Øˆt�~‰~×+Ñ+ó
ˆô ‹IˆØ	�
‰
Ô&Ô'Ø	�‰Ð%Ô&Ø	�‰Ð'Ô(Ø	�‰�SÔØ�‰×$Ñ$ QÔ'Ø�‰×)Ñ)Õ+r   c                 óü  — |j                  «       }|j                  «       }|j                  «       }t        j                  |«      }| j	                  |«      }t        t        j                  |«      d«      }t        «       }|j                  | j                  j                  | j                  j                  | j                  j                  | j                  j                  «       |j                  |«       |j                  | j                   j#                  «       j%                  t&        j(                  j*                  t&        j,                  j*                  «      «       |j                  |«       |j/                  |«       | j                  j1                  || j3                  |j5                  «       «      j7                  «       «       | j                  j9                  ||«       | j                  j;                  «        y r8   )r:   Ú
get_binaryr   r;   r    r<   r=   r>   r   r?   r   rA   r@   rC   rB   r'   r   r(   r)   r   r*   r+   r,   rF   rI   rG   rE   rH   Ú_verify_keyrM   )r   r/   Úpeer_host_key_bytesrN   rT   r   rO   rP   s           r   r3   z"KexCurve25519._parse_kexecdh_replyh   s_  € ØŸl™l›nÐØŸ™›ˆØ�l‰l‹nˆä"×4Ñ4°^ÓDˆà×"Ñ" 8Ó,ˆÜ”× Ñ  Ó# RÓ(ˆä‹YˆØ
�‰Ø�N‰N×(Ñ(Ø�N‰N×)Ñ)Ø�N‰N×)Ñ)Ø�N‰N×*Ñ*ô		
ð 	�‰Ð)Ô*Ø
�‰Ø�H‰H×ÑÓ!×.Ñ.Ü×&Ñ&×*Ñ*¬M×,FÑ,F×,JÑ,Jóô	
ð
 	�‰�nÔ%Ø
�‰�QŒØ�‰×Ñ  4§>¡>°"·*±*³,Ó#?×#FÑ#FÓ#HÔIØ�‰×"Ñ"Ð#6¸Ô<Ø�‰×)Ñ)Õ+r   N)Ú__name__Ú
__module__Ú__qualname__ÚhashlibÚsha256rG   r   Úclassmethodr   r    r0   r6   r2   r3   © r   r   r   r      s>   „ Ø—‘€Iòð ñó ðòò:ò 
ò!,óF,r   r   )r=   r\   Úcryptography.exceptionsr   Úcryptography.hazmat.primitivesr   r   Ú0cryptography.hazmat.primitives.asymmetric.x25519r   r   Úparamiko.messager   Úparamiko.commonr	   Úparamiko.ssh_exceptionr
   Úranger$   r.   r&   rL   r   )Úcs   0r   ú<module>rh      sh   ðÛ Û å 8ß G÷õ
 %Ý $Ý /ñ ).¨b°"«Ñ %Ð Ð%Ù@EÀbÈ"ÃÖ*N¸1©8°A­;Ò*NÑ 'Ð Ð'÷o,ò o,ùò +Os   ÁA(