Current File : //lib/python2.7/site-packages/paramiko/kex_group1.pyo |
�
=OXc @ s� d Z d d l Z d d l m Z d d l m Z d d l m Z m Z d d l m
Z
d d l m Z m
Z
m Z d d l m Z e d d
� \ Z Z g e d d
� D] Z e e � ^ q� \ Z Z e d � e d Z e d
Z d e f d � � YZ d S( s�
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.
i����N( t sha1( t util( t max_bytet zero_byte( t Message( t byte_chrt longt byte_mask( t SSHExceptioni i i i i t KexGroup1c B sV e Z d Z d Z d Z e Z d � Z d � Z d � Z d � Z
d � Z d � Z RS( lE ����8�{3If?�E y�Z�3�V�58n�oP�e�?a-�
�tBL�
�y3W[�<�p�6m5��P��&a�F!�33*�w& �AR�M;L}.�c|&A�@�h\�&&#-D�v�d���� i s diffie-hellman-group1-sha1c C s: | | _ t d � | _ t d � | _ t d � | _ d S( Ni ( t transportR t xt et f( t selfR
( ( s7 /usr/lib/python2.7/site-packages/paramiko/kex_group1.pyt __init__2 s c C s� | j � | j j rH t | j | j | j � | _ | j j t � d St | j | j | j � | _
t � } | j t
� | j | j
� | j j | � | j j t � d S( N( t _generate_xR
t server_modet powt GR t PR
t _expect_packett _MSG_KEXDH_INITR R t add_bytet c_MSG_KEXDH_INITt add_mpintt
_send_messaget _MSG_KEXDH_REPLY( R t m( ( s7 /usr/lib/python2.7/site-packages/paramiko/kex_group1.pyt start_kex8 s
c C s_ | j j r% | t k r% | j | � S| j j rK | t k rK | j | � St d | � � d S( Ns( KexGroup1 asked to handle packet type %d( R
R R t _parse_kexdh_initR t _parse_kexdh_replyR ( R t ptypeR ( ( s7 /usr/lib/python2.7/site-packages/paramiko/kex_group1.pyt
parse_nextG s
c C sj xQ t j d � } t | d d � | d } | d t k r | d t k r Pq q t j | � | _ d S( Ni� i i i i ( t ost urandomR t b7ffffffffffffffft b0000000000000000R t inflate_longR ( R t x_bytes( ( s7 /usr/lib/python2.7/site-packages/paramiko/kex_group1.pyR P s c C s0 | j � } | j � | _ | j d k s@ | j | j d k rO t d � � n | j � } t | j | j | j � } t � } | j | j
j | j
j | j
j
| j
j � | j | � | j | j � | j | j � | j | � | j
j | t | j � � j � � | j
j | | � | j
j � d S( Ni s Server kex "f" is out of range( t
get_stringt get_mpintR
R R t
get_binaryR R R t addR
t
local_versiont remote_versiont local_kex_initt remote_kex_initt
add_stringR R t _set_K_HR t asbytest digestt _verify_keyt _activate_outbound( R R t host_keyt sigt Kt hm( ( s7 /usr/lib/python2.7/site-packages/paramiko/kex_group1.pyR ^ s %
%c C s� | j � | _ | j d k s4 | j | j d k rC t d � � n t | j | j | j � } | j j � j � } t � } | j
| j j | j j | j j
| j j � | j | � | j | j � | j | j � | j | � t | j � � j � } | j j | | � | j j � j | � } t � } | j t � | j | � | j | j � | j | � | j j | � | j j � d S( Ni s Client kex "e" is out of range( R) R R R R R R
t get_server_keyR2 R R+ R- R, R/ R. R0 R R
R R3 R1 t
sign_ssh_dataR t c_MSG_KEXDH_REPLYR R5 ( R R R8 t keyR9 t HR7 ( ( s7 /usr/lib/python2.7/site-packages/paramiko/kex_group1.pyR r s, %
(
t __name__t
__module__R R t nameR t hash_algoR R R! R R R ( ( ( s7 /usr/lib/python2.7/site-packages/paramiko/kex_group1.pyR ) s ( t __doc__R"