
    ohl                         d Z ddlZddlmZ ddlmZ ddlmZmZm	Z	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 e	d
      edz  z   Zedz  Z G d d      Zyc c} w )z
Standard SSH key exchange ("kex" if you wanna sound cool).  Diffie-Hellman of
1024 bit key halves, using a known "p" prime and "g" generator.
    N)sha1)util)max_byte	zero_bytebyte_chr	byte_mask)Message)SSHException                c                   @    e Zd ZdZdZdZeZd Zd Z	d Z
d Zd Zd	 Zy
)	KexGroup1lE   8{3If?E yZ3V58noPe?a-tBLy3W[<p6m5P&aF!33*w& ARM;L}.c|&A@h\&&#-Dvd    zdiffie-hellman-group1-sha1c                 <    || _         d| _        d| _        d| _        y )Nr   )	transportxef)selfr   s     e/var/www/pru.catia.catastroantioquia-mas.com/tasa/lib/python3.12/site-packages/paramiko/kex_group1.py__init__zKexGroup1.__init__1   s    "    c                 8   | j                          | j                  j                  rPt        | j                  | j
                  | j                        | _        | j                  j                  t               y t        | j                  | j
                  | j                        | _
        t               }|j                  t               |j                  | j                         | j                  j                  |       | j                  j                  t                y )N)_generate_xr   server_modepowGr   Pr   _expect_packet_MSG_KEXDH_INITr   r	   add_bytec_MSG_KEXDH_INIT	add_mpint_send_message_MSG_KEXDH_REPLY)r   ms     r   	start_kexzKexGroup1.start_kex7   s    >>%%0DFNN))/:TVVTVVTVV,I	

#$	DFF$$Q'%%&67r   c                     | j                   j                  r|t        k(  r| j                  |      S | j                   j                  s|t        k(  r| j                  |      S d}t        |j                  |            )Nz*KexGroup1 asked to handle packet type {:d})r   r   r#   _parse_kexdh_initr(   _parse_kexdh_replyr
   format)r   ptyper)   msgs       r   
parse_nextzKexGroup1.parse_nextF   sf    >>%%5O+C))!,,++:J1J**1--:3::e,--r   c                     	 t        j                  d      }t        |d   d      |dd  z   }|d d t        k7  r|d d t        k7  rnDt        j                  |      | _        y )N      r   r   r   )osurandomr   b7fffffffffffffffb0000000000000000r   inflate_longr   )r   x_bytess     r   r   zKexGroup1._generate_xP   si     jjoG
D1GABK?G00BQK#44  ""7+r   c                    |j                         }|j                         | _        | j                  dk  s| j                  | j                  dz
  kD  rt	        d      |j                         }t        | j                  | j                  | j                        }t               }|j                  | j                  j                  | j                  j                  | j                  j                  | j                  j                         |j                  |       |j!                  | j"                         |j!                  | j                         |j!                  |       | j                  j%                  || j'                  |j)                               j+                                | j                  j-                  ||       | j                  j/                          y )Nr3   zServer kex "f" is out of range)
get_string	get_mpintr   r!   r
   
get_binaryr   r   r	   addr   local_versionremote_versionlocal_kex_initremote_kex_init
add_stringr&   r   _set_K_H	hash_algoasbytesdigest_verify_key_activate_outbound)r   r)   host_keysigKhms         r   r-   zKexGroup1._parse_kexdh_replya   s;   <<>FFQJDFFTVVaZ/?@@lln' Y
NN((NN))NN))NN**		
 	h
TVV
TVV
Q4>>"**,#?#F#F#HI""8S1))+r   c                    |j                         | _        | j                  dk  s| j                  | j                  dz
  kD  rt        d      t	        | j                  | j
                  | j                        }| j                  j                         j                         }t               }|j                  | j                  j                  | j                  j                  | j                  j                  | j                  j                         |j                  |       |j!                  | j                         |j!                  | j"                         |j!                  |       | j%                  |j                               j'                         }| j                  j)                  ||       | j                  j                         j+                  || j                  j,                        }t               }|j/                  t0               |j                  |       |j!                  | j"                         |j                  |       | j                  j3                  |       | j                  j5                          y )Nr3   zClient kex "e" is out of range)r=   r   r!   r
   r   r   r   get_server_keyrG   r	   r?   rA   r@   rC   rB   rD   r&   r   rF   rH   rE   sign_ssh_datahost_key_typer$   c_MSG_KEXDH_REPLYr'   rJ   )r   r)   rM   keyrN   HrL   s          r   r,   zKexGroup1._parse_kexdh_initz   s   FFQJDFFTVVaZ/?@@'nn++-557 Y
NN))NN((NN**NN))		
 	c
TVV
TVV
QNN2::<(//11%nn++-;;t~~++
 I	

$%	S	DFF	S$$Q'))+r   N)__name__
__module____qualname__r!   r    namer   rF   r   r*   r1   r   r-   r,    r   r   r   r   (   s7     	KA	A'DI8.,",2!,r   r   )__doc__r5   hashlibr   paramikor   paramiko.commonr   r   r   r   paramiko.messager	   paramiko.ssh_exceptionr
   ranger#   r(   r%   rS   r7   r8   r   )cs   0r   <module>rc      s   &
 
   D D $ / %*"bM !!<A"bM&Jqx{&J # #TNX\1 M s, s, 'Ks   A5