Ñò pØcJc @ s d Z d d k l Z d d k l Z d d k Td d k l Z d d k l Z d d k l Z d d k l Z l Z d d k l Z d e f d „ ƒ YZ d S( s L{DSSKey} iÿÿÿÿ( t DSA( t SHA( t *( t util( t SSHException( t Message( t BERt BERException( t PKeyt DSSKeyc B s¿ e Z d Z d d d d d d d „ Z d „ Z d „ Z d „ Z d „ Z d „ Z d „ Z d „ Z d „ Z d d „ Z d d „ Z d d d „ Z e e ƒ Z d „ Z d „ Z d „ Z RS( sX Representation of a DSS key which can be used to sign an verify SSH2 data. c C s_ d | _ d | _ d | _ d | _ d | _ | d j o | i | | ƒ d S| d j o | i | | ƒ d S| d j o | d j o t | ƒ } n | d j o" | \ | _ | _ | _ | _ n} | d j o t d ƒ ‚ n | i ƒ d j o t d ƒ ‚ n | i ƒ | _ | i ƒ | _ | i ƒ | _ | i ƒ | _ t i | i ƒ | _ d S( Ns Key object may not be emptys ssh-dsss Invalid key( t Nonet pt qt gt yt xt _from_private_keyt _from_private_key_fileR R t get_stringt get_mpintR t bit_lengtht size( t selft msgt datat filenamet passwordt valst file_obj( ( s3 /usr/lib/python2.6/site-packages/paramiko/dsskey.pyt __init__( s0 " c C s` t ƒ } | i d ƒ | i | i ƒ | i | i ƒ | i | i ƒ | i | i ƒ t | ƒ S( Ns ssh-dss( R t add_stringt add_mpintR R R R t str( R t m( ( s3 /usr/lib/python2.6/site-packages/paramiko/dsskey.pyt __str__C s c C sx t | i ƒ ƒ } | d t | i ƒ } | d t | i ƒ } | d t | i ƒ } | d t | i ƒ } t | ƒ S( Ni% ( t hasht get_nameR R R R ( R t h( ( s3 /usr/lib/python2.6/site-packages/paramiko/dsskey.pyt __hash__L s c C s d S( Ns ssh-dss( ( R ( ( s3 /usr/lib/python2.6/site-packages/paramiko/dsskey.pyR$ U s c C s | i S( N( R ( R ( ( s3 /usr/lib/python2.6/site-packages/paramiko/dsskey.pyt get_bitsX s c C s | i d j S( N( R R ( R ( ( s3 /usr/lib/python2.6/site-packages/paramiko/dsskey.pyt can_sign[ s c C s˜ t i | ƒ i ƒ } t i t | i ƒ t | i ƒ t | i ƒ t | i ƒ t | i ƒ f ƒ } t t i | i d ƒ ƒ } xI t oA t i | i | ƒ d ƒ } | d j o | | i j o Pq~ q~ W| i t i | d ƒ | ƒ \ } } t ƒ } | i d ƒ t i | d ƒ } t i | d ƒ } t | ƒ d j o d d t | ƒ | } n t | ƒ d j o d d t | ƒ | } n | i | | ƒ | S( Ni i i s ssh-dssi t ( R t newt digestR t constructt longR R R R R t lenR t deflate_longt Truet inflate_longt get_bytest signR R ( R t rpoolR R+ t dsst qsizet kt rt sR! t rstrt sstr( ( s3 /usr/lib/python2.6/site-packages/paramiko/dsskey.pyt sign_ssh_data^ s&