[Checkins] SVN: zc.buildoutsftp/branches/dev/src/zc/buildoutsftp/urllib2sftp.py Updated registry sniffing logic.

Jim Fulton jim at zope.com
Wed Sep 13 16:10:28 EDT 2006


Log message for revision 70159:
  Updated registry sniffing logic.
  

Changed:
  U   zc.buildoutsftp/branches/dev/src/zc/buildoutsftp/urllib2sftp.py

-=-
Modified: zc.buildoutsftp/branches/dev/src/zc/buildoutsftp/urllib2sftp.py
===================================================================
--- zc.buildoutsftp/branches/dev/src/zc/buildoutsftp/urllib2sftp.py	2006-09-13 19:12:46 UTC (rev 70158)
+++ zc.buildoutsftp/branches/dev/src/zc/buildoutsftp/urllib2sftp.py	2006-09-13 20:10:27 UTC (rev 70159)
@@ -25,7 +25,7 @@
 
 if sys.platform == 'win32':
     import _winreg
-    parse_reg_key_name = re.compile('(rsa|dss)@22:(\S+)$').match
+    parse_reg_key_name = re.compile('(rsa|dss)2?@22:(\S+)$').match
     def _get_hosts_keys():
         regkey = _winreg.OpenKey(_winreg.HKEY_CURENT_USER,
                                  r'Software\SimonTatham\PuTTY\SshHoskKeys',
@@ -36,7 +36,12 @@
             try:
                 name, value, type_ = _winreg.EnumValue(regkey, i)
                 i += 1
-                key = paramiko.PKey(data=value)
+                value = [eval(v, dict(__builtins__={}))
+                         for v in value.split(',')]
+                if ktype == 'rsa':
+                    key = paramiko.RSAKey(vals=value)
+                if ktype == 'dss':
+                    key = paramiko.DSSKey(vals=value)
                 ktype, host = parse_reg_key_name(name).groups()
                 keys.add(host, 'ssh-'+ktype, key)
             except WindowsError:



More information about the Checkins mailing list