%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /proc/self/root/opt/plesk/python/2.7/lib/python2.7/site-packages/paramiko/
Upload File :
Create Path :
Current File : //proc/self/root/opt/plesk/python/2.7/lib/python2.7/site-packages/paramiko/ecdsakey.pyc

�
��Abc@s�dZddlmZmZddlmZddlmZmZddl	m
Z
ddlmZm
Z
ddlmZddlmZdd	lmZdd
lmZddlmZdefd
��YZdefd��YZdefd��YZdS(s
ECDSA keys
i����(tInvalidSignaturetUnsupportedAlgorithm(tdefault_backend(thashest
serialization(tec(tdecode_dss_signaturetencode_dss_signature(t	four_byte(tMessage(tPKey(tSSHException(tdeflate_longt_ECDSACurvecBseZdZd�ZRS(s�
    Represents a specific ECDSA Curve (nistp256, nistp384, etc).

    Handles the generation of the key format identifier and the selection of
    the proper hash function. Also grabs the proper curve from the 'ecdsa'
    package.
    cCsz||_|j|_d|j|_|jdkrCtj|_n*|jdkratj|_ntj|_||_	dS(Nsecdsa-sha2-ii�(
t	nist_nametkey_sizet
key_lengthtkey_format_identifierRtSHA256thash_objecttSHA384tSHA512tcurve_class(tselfRR((sF/opt/plesk/python/2.7/lib/python2.7/site-packages/paramiko/ecdsakey.pyt__init__0s	(t__name__t
__module__t__doc__R(((sF/opt/plesk/python/2.7/lib/python2.7/site-packages/paramiko/ecdsakey.pyR
'st_ECDSACurveSetcBs;eZdZd�Zd�Zd�Zd�Zd�ZRS(s�
    A collection to hold the ECDSA curves. Allows querying by oid and by key
    format identifier. The two ways in which ECDSAKey needs to be able to look
    up curves.
    cCs
||_dS(N(tecdsa_curves(RR((sF/opt/plesk/python/2.7/lib/python2.7/site-packages/paramiko/ecdsakey.pyRIscCsg|jD]}|j^q
S(N(RR(Rtcurve((sF/opt/plesk/python/2.7/lib/python2.7/site-packages/paramiko/ecdsakey.pytget_key_format_identifier_listLscCs+x$|jD]}|j|kr
|Sq
WdS(N(RR(RRR((sF/opt/plesk/python/2.7/lib/python2.7/site-packages/paramiko/ecdsakey.pytget_by_curve_classOscCs+x$|jD]}|j|kr
|Sq
WdS(N(RR(RRR((sF/opt/plesk/python/2.7/lib/python2.7/site-packages/paramiko/ecdsakey.pytget_by_key_format_identifierTscCs+x$|jD]}|j|kr
|Sq
WdS(N(RR(RRR((sF/opt/plesk/python/2.7/lib/python2.7/site-packages/paramiko/ecdsakey.pytget_by_key_lengthYs(RRRRRR R!R"(((sF/opt/plesk/python/2.7/lib/python2.7/site-packages/paramiko/ecdsakey.pyRBs				tECDSAKeycBs(eZdZeeejd�eejd�eejd�g�Z	dddddded�Ze
d��Zd�Zd�Zed��Zd	�Zd
�Zd�Zdd�Zd
�Zdd�Zdd�Ze
ej�ddd��Zd�Zd�Zd�Zd�Zd�ZRS(s\
    Representation of an ECDSA key which can be used to sign and verify SSH2
    data.
    tnistp256tnistp384tnistp521cCs�d|_d|_d|_|dk	r;|j||�dS|dk	r[|j||�dS|dkr�|dk	r�t|�}n|dk	r�|\|_|_|jjj}|j	j
|�|_n$|j�}	d}
|	j
|
�r�|	t|
� }	n|j	j|	�|_|j	j�}g|D]}dj|�^q'}
|jd|d|d|
�|j�}||jjkr�tdj|���n|j�}y+tjj|jj�|�}||_Wntk
r�td��nXdS(Ns-cert-v01@openssh.coms{}-cert-v01@openssh.comtmsgtkey_typet	cert_typesCan't handle curve of type {}sInvalid public key(tNonet
verifying_keytsigning_keytpublic_blobt_from_private_keyt_from_private_key_fileR	Rt	__class__t
_ECDSA_CURVESR tecdsa_curvetget_texttendswithtlenR!Rtformatt_check_type_and_load_certRRt
get_binaryRtEllipticCurvePublicKeytfrom_encoded_pointRt
ValueError(RR'tdatatfilenametpasswordtvalstfile_objtvalidate_pointtc_classR(tsuffixt	key_typestxt
cert_typest	curvenamet	pointinfotkey((sF/opt/plesk/python/2.7/lib/python2.7/site-packages/paramiko/ecdsakey.pyRmsH
				"		

cCs
|jj�S(N(R1R(tcls((sF/opt/plesk/python/2.7/lib/python2.7/site-packages/paramiko/ecdsakey.pyt supported_key_format_identifiers�scCs�|j}t�}|j|jj�|j|jj�|j�}|jjdd}t	|j
dt�}d|t|�|}t	|j
dt�}d|t|�|}t||}|j|�|j�S(Niitadd_sign_paddings(R+R	t
add_stringR2RRtpublic_numbersRRRREtFalseR5tyRtasbytes(RRItmtnumberstkey_size_bytestx_bytesty_bytest	point_str((sF/opt/plesk/python/2.7/lib/python2.7/site-packages/paramiko/ecdsakey.pyRQ�s		
cCs
|j�S(N(RQ(R((sF/opt/plesk/python/2.7/lib/python2.7/site-packages/paramiko/ecdsakey.pyt__str__�scCs+|j�|jj�j|jj�jfS(N(tget_nameR+RNRERP(R((sF/opt/plesk/python/2.7/lib/python2.7/site-packages/paramiko/ecdsakey.pyt_fields�s	cCs
|jjS(N(R2R(R((sF/opt/plesk/python/2.7/lib/python2.7/site-packages/paramiko/ecdsakey.pyRY�scCs
|jjS(N(R2R(R((sF/opt/plesk/python/2.7/lib/python2.7/site-packages/paramiko/ecdsakey.pytget_bits�scCs
|jdk	S(N(R,R*(R((sF/opt/plesk/python/2.7/lib/python2.7/site-packages/paramiko/ecdsakey.pytcan_sign�scCsxtj|jj��}|jj||�}t|�\}}t�}|j|jj	�|j|j
||��|S(N(RtECDSAR2RR,tsignRR	RMRt
_sigencode(RR<t	algorithmtecdsatsigtrtsRR((sF/opt/plesk/python/2.7/lib/python2.7/site-packages/paramiko/ecdsakey.pyt
sign_ssh_data�s	cCs�|j�|jjkrtS|j�}|j|�\}}t||�}y,|jj||t	j
|jj���Wntk
r�tSXt
SdS(N(R3R2RROR8t
_sigdecodeRR+tverifyRR]RRtTrue(RR<R'RbtsigRtsigSt	signature((sF/opt/plesk/python/2.7/lib/python2.7/site-packages/paramiko/ecdsakey.pytverify_ssh_sig�s	#
cCs&|j||jtjjd|�dS(NR>(t_write_private_key_fileR,Rt
PrivateFormattTraditionalOpenSSL(RR=R>((sF/opt/plesk/python/2.7/lib/python2.7/site-packages/paramiko/ecdsakey.pytwrite_private_key_file�s
cCs&|j||jtjjd|�dS(NR>(t_write_private_keyR,RRnRo(RR@R>((sF/opt/plesk/python/2.7/lib/python2.7/site-packages/paramiko/ecdsakey.pytwrite_private_key�s
cCs�|dk	rQ|jj|�}|dkrBtdj|���n|j�}ntj|dt��}t	d||j
�f�S(s
        Generate a new private ECDSA key.  This factory function can be used to
        generate a new host key or authentication key.

        :param progress_func: Not used for this type of key.
        :returns: A new private key (`.ECDSAKey`) object
        sUnsupported key length: {:d}tbackendR?N(R*R1R"R;R6RRtgenerate_private_keyRR#t
public_key(RJRt
progress_functbitstprivate_key((sF/opt/plesk/python/2.7/lib/python2.7/site-packages/paramiko/ecdsakey.pytgenerates	cCs&|jd||�}|j|�dS(NtEC(t_read_private_key_filet_decode_key(RR=R>R<((sF/opt/plesk/python/2.7/lib/python2.7/site-packages/paramiko/ecdsakey.pyR/scCs&|jd||�}|j|�dS(NRz(t_read_private_keyR|(RR@R>R<((sF/opt/plesk/python/2.7/lib/python2.7/site-packages/paramiko/ecdsakey.pyR.scCs{|\}}||jkrty"tj|dddt��}Wq>ttttfk
rp}t	t
|���q>Xn�||jkr1y�t|�}|j
�}|j�}|j�}d|}	|jj|	�}
|
s�t	d��ntj||
j�t��}Wq>tk
r-}t	t
|���q>Xn
|j|�||_|j�|_|jj}|jj|�|_dS(NR>Rssecdsa-sha2-sInvalid key curve identifier(t_PRIVATE_KEY_FORMAT_ORIGINALRtload_der_private_keyR*RR;tAssertionErrort	TypeErrorRRtstrt_PRIVATE_KEY_FORMAT_OPENSSHR	R3R8t	get_mpintR1R!Rtderive_private_keyRt	Exceptiont_got_bad_key_format_idR,RuR+RR0R R2(RR<tpkformatRIteR't
curve_nametverkeytsigkeytnameRR((sF/opt/plesk/python/2.7/lib/python2.7/site-packages/paramiko/ecdsakey.pyR|s>


	cCs-t�}|j|�|j|�|j�S(N(R	t	add_mpintRQ(RRcRdR'((sF/opt/plesk/python/2.7/lib/python2.7/site-packages/paramiko/ecdsakey.pyR_Cs	

cCs.t|�}|j�}|j�}||fS(N(R	R�(RRbR'RcRd((sF/opt/plesk/python/2.7/lib/python2.7/site-packages/paramiko/ecdsakey.pyRfIsN( RRRRR
Rt	SECP256R1t	SECP384R1t	SECP521R1R1R*RhRtclassmethodRKRQRXtpropertyRZRYR[R\ReRlRpRrRyR/R.R|R_Rf(((sF/opt/plesk/python/2.7/lib/python2.7/site-packages/paramiko/ecdsakey.pyR#_s<5					
				'	N(Rtcryptography.exceptionsRRtcryptography.hazmat.backendsRtcryptography.hazmat.primitivesRRt)cryptography.hazmat.primitives.asymmetricRt/cryptography.hazmat.primitives.asymmetric.utilsRRtparamiko.commonRtparamiko.messageR	t
paramiko.pkeyR
tparamiko.ssh_exceptionRt
paramiko.utilRtobjectR
RR#(((sF/opt/plesk/python/2.7/lib/python2.7/site-packages/paramiko/ecdsakey.pyt<module>s

Zerion Mini Shell 1.0