Current File : //usr/lib/python2.7/site-packages/paramiko/kex_group1.pyo
�
=OXc@s�dZddlZddlmZddlmZddlmZmZddl	m
Z
ddlmZm
Z
mZddlmZed	d
�\ZZged	d
�D]Zee�^q�\ZZed�edZed
Zdefd��YZdS(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(tsha1(tutil(tmax_bytet	zero_byte(tMessage(tbyte_chrtlongt	byte_mask(tSSHExceptionii iiit	KexGroup1cBsVeZdZdZdZeZd�Zd�Zd�Z	d�Z
d�Zd�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����isdiffie-hellman-group1-sha1cCs:||_td�|_td�|_td�|_dS(Ni(t	transportRtxtetf(tselfR
((s7/usr/lib/python2.7/site-packages/paramiko/kex_group1.pyt__init__2s	cCs�|j�|jjrHt|j|j|j�|_|jjt	�dSt|j|j|j�|_
t�}|jt
�|j|j
�|jj|�|jjt�dS(N(t_generate_xR
tserver_modetpowtGRtPR
t_expect_packett_MSG_KEXDH_INITRRtadd_bytetc_MSG_KEXDH_INITt	add_mpintt
_send_messaget_MSG_KEXDH_REPLY(Rtm((s7/usr/lib/python2.7/site-packages/paramiko/kex_group1.pyt	start_kex8s
	
cCs_|jjr%|tkr%|j|�S|jjrK|tkrK|j|�Std|��dS(Ns(KexGroup1 asked to handle packet type %d(R
RRt_parse_kexdh_initRt_parse_kexdh_replyR(RtptypeR((s7/usr/lib/python2.7/site-packages/paramiko/kex_group1.pyt
parse_nextGs


cCsjxQtjd�}t|dd�|d}|d tkr|d tkrPqqtj|�|_dS(Ni�iiii(tosturandomRtb7ffffffffffffffftb0000000000000000Rtinflate_longR(Rtx_bytes((s7/usr/lib/python2.7/site-packages/paramiko/kex_group1.pyRPscCs0|j�}|j�|_|jdks@|j|jdkrOtd��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�dS(NisServer kex "f" is out of range(t
get_stringt	get_mpintR
RRt
get_binaryRRRtaddR
t
local_versiontremote_versiontlocal_kex_inittremote_kex_initt
add_stringRRt_set_K_HRtasbytestdigestt_verify_keyt_activate_outbound(RRthost_keytsigtKthm((s7/usr/lib/python2.7/site-packages/paramiko/kex_group1.pyR^s %	

%cCs�|j�|_|jdks4|j|jdkrCtd��nt|j|j|j�}|jj�j�}t	�}|j
|jj|jj|jj
|jj�|j|�|j|j�|j|j�|j|�t|j��j�}|jj||�|jj�j|�}t	�}|jt�|j|�|j|j�|j|�|jj|�|jj�dS(NisClient kex "e" is out of range(R)RRRRRR
tget_server_keyR2RR+R-R,R/R.R0RR
RR3R1t
sign_ssh_dataRtc_MSG_KEXDH_REPLYRR5(RRR8tkeyR9tHR7((s7/usr/lib/python2.7/site-packages/paramiko/kex_group1.pyRrs,%	

	


(
t__name__t
__module__RRtnameRt	hash_algoRRR!RRR(((s7/usr/lib/python2.7/site-packages/paramiko/kex_group1.pyR	)s						(t__doc__R"thashlibRtparamikoRtparamiko.commonRRtparamiko.messageRtparamiko.py3compatRRRtparamiko.ssh_exceptionRtrangeRRtcRR<R$R%tobjectR	(((s7/usr/lib/python2.7/site-packages/paramiko/kex_group1.pyt<module>s.