[Zope3-checkins] SVN: Zope3/trunk/ Merge revision 71050 from the mkerrin-twisted-upgrade branch.

Michael Kerrin michael.kerrin at openapp.biz
Wed Dec 20 14:57:25 EST 2006


Log message for revision 71635:
  Merge revision 71050 from the mkerrin-twisted-upgrade branch.
  
  This removes the unused and untested SFTP code from zope.app.twisted. It also removes
  all the SSH keys.
  

Changed:
  U   Zope3/trunk/doc/CHANGES.txt
  U   Zope3/trunk/src/zope/app/twisted/ftp/__init__.py
  U   Zope3/trunk/src/zope/app/twisted/ftp/configure.zcml
  D   Zope3/trunk/src/zope/app/twisted/ftp/sftp.py
  D   Zope3/trunk/src/zope/app/twisted/ftp/sftpserver.py
  U   Zope3/trunk/src/zope/app/twisted/ftp/tests/test_ftpserver.py
  U   Zope3/trunk/src/zope/app/twisted/ftp/utils.py
  U   Zope3/trunk/src/zope/app/twisted/interfaces.py
  D   Zope3/trunk/ssh_host_rsa_key
  D   Zope3/trunk/ssh_host_rsa_key.pub
  U   Zope3/trunk/zope.conf.in
  D   Zope3/trunk/zopeskel/etc/ssh_host_rsa_key
  U   Zope3/trunk/zopeskel/etc/zope.conf.in

-=-
Modified: Zope3/trunk/doc/CHANGES.txt
===================================================================
--- Zope3/trunk/doc/CHANGES.txt	2006-12-20 19:26:47 UTC (rev 71634)
+++ Zope3/trunk/doc/CHANGES.txt	2006-12-20 19:57:24 UTC (rev 71635)
@@ -10,6 +10,9 @@
 
     New features
 
+      - Removed unused and untested SFTP code from zope.app.twisted along with
+        all the SSH keys.
+
       - Added ``index`` keyword argument to testbrowser's ``getLink()``
         method, so that later links with a match can be accessed
         too. Example: In the ZMI doing ``getLink('Folder')`` will give you the

Modified: Zope3/trunk/src/zope/app/twisted/ftp/__init__.py
===================================================================
--- Zope3/trunk/src/zope/app/twisted/ftp/__init__.py	2006-12-20 19:26:47 UTC (rev 71634)
+++ Zope3/trunk/src/zope/app/twisted/ftp/__init__.py	2006-12-20 19:57:24 UTC (rev 71635)
@@ -11,15 +11,14 @@
 # FOR A PARTICULAR PURPOSE.
 #
 ##############################################################################
-"""FTP and SFTP server factories.
 """
+FTP server factories.
+"""
 
 from zope.app.twisted.server import ServerType
 from zope.app.twisted.ftp.server import FTPFactory
-## from zope.app.twisted.server import SSHServerType
 
 from utils import FTPRequestFactory
-## from sftpserver import SFTPFactory
 
 def createFTPFactory(db):
     request_factory = FTPRequestFactory(db)
@@ -29,16 +28,3 @@
     return factory
 
 ftpserver = ServerType(createFTPFactory, 8021)
-
-
-## def createSFTPFactory(db, hostkey):
-##     """
-##     Note that all SSH factories must contain the extra hostkey arguement.
-##     """
-##     request_factory = FTPRequestFactory(db)
-
-##     factory = SFTPFactory(request_factory, hostkey = hostkey)
-
-##     return factory
-
-## sftpserver = SSHServerType(createSFTPFactory, 8115)

Modified: Zope3/trunk/src/zope/app/twisted/ftp/configure.zcml
===================================================================
--- Zope3/trunk/src/zope/app/twisted/ftp/configure.zcml	2006-12-20 19:26:47 UTC (rev 71634)
+++ Zope3/trunk/src/zope/app/twisted/ftp/configure.zcml	2006-12-20 19:57:24 UTC (rev 71635)
@@ -3,20 +3,7 @@
   <utility
      name="FTP"
      component=".ftpserver"
-     provides="..interfaces.IServerType"/>
-
-<!--
-  <utility
-     name="SFTP"
-     component=".sftpserver"
      provides="..interfaces.IServerType"
      />
 
-  <adapter
-     factory=".sftp.SFTPServerForZope"
-     for=".sftpserver.ZopeAvatar"
-     provides="twisted.conch.ssh.filetransfer.ISFTPServer"
-     />
--->
-
 </configure>

Deleted: Zope3/trunk/src/zope/app/twisted/ftp/sftp.py
===================================================================
--- Zope3/trunk/src/zope/app/twisted/ftp/sftp.py	2006-12-20 19:26:47 UTC (rev 71634)
+++ Zope3/trunk/src/zope/app/twisted/ftp/sftp.py	2006-12-20 19:57:24 UTC (rev 71635)
@@ -1,245 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2001,2002,2003 Zope Corporation and Contributors.
-# All Rights Reserved.
-#
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE.
-#
-##############################################################################
-""" Implementation of the ISFTPServer ssh file transfer protocol for Zope.
-"""
-
-import posixpath, os, stat, array, datetime
-from cStringIO import StringIO
-
-from zope.interface import implements
-
-from twisted.conch.interfaces import ISFTPServer, ISFTPFile
-from twisted.conch.ssh.filetransfer import FXF_APPEND, FXF_READ
-
-class SFTPServerForZope(object):
-    implements(ISFTPServer)
-
-    def __init__(self, avatar):
-        self.avatar = avatar
-
-    def gotVersion(self, otherVersion, extData):
-        return {}
-
-    def openFile(self, filename, flags, attrs):
-        fp = ZopeSFTPFile(self, self._generatePath(filename), flags, attrs)
-
-        return fp
-
-    def removeFile(self, filename):
-        self.avatar.fs_access.remove(self._generatePath(filename))
-
-    def renameFile(self, oldpath, newpath):
-        oldpath = self._generatePath(oldpath)
-        newpath = self._generatePath(newpath)
-        self.avatar.fs_access.rename(oldpath, newpath)
-
-    def makeDirectory(self, path, attrs):
-        self.avatar.fs_access.mkdir(self._generatePath(path))
-
-    def removeDirectory(self, path):
-        self.avatar.fs_access.rmdir(self._generatePath(path))
-
-    def openDirectory(self, path):
-        return ZopeSFTPDirectory(self, self._generatePath(path))
-
-    def getAttrs(self, path, followLinks):
-        fp = ZopeSFTPFile(self, self._generatePath(path), FXF_READ, {})
-
-        return fp.getAttrs()
-
-    def setAttrs(self, path, attrs):
-        pass
-
-    def readLink(self, path):
-        raise NotImplementedError, "readLink not implemented."
-
-    def makeLink(self, linkPath, targetPath):
-        raise NotImplementedError, "makeLink not implemented."
-
-    def realPath(self, path):
-        return self._generatePath(path)
-
-    def extendedRequest(self, extendedName, extendedData):
-        raise NotImplementedError, \
-              "Zope doesn't support any SFTP extensions."
-
-    def _generatePath(self, args):
-        path = posixpath.join('/', args)
-        return posixpath.normpath(path)
-
-
-class ZopeSFTPDirectory(object):
-
-    def __init__(self, server, directory):
-        self.server = server
-        self.dir    = directory
-        self.files  = self.server.avatar.fs_access.names(directory)
-
-    def __iter__(self):
-        return self
-
-    def next(self):
-        try:
-            f = self.files.pop(0)
-        except IndexError:
-            raise StopIteration
-        else:
-            file = ZopeSFTPFile(self.server, posixpath.join(self.dir, f),
-                                FXF_READ, {})
-            s = file.getAttrs()
-            longname = _lsLine(f, s)
-            return (str(f), str(longname), s)
-
-    def close(self):
-        self.files = []
-
-
-class ZopeSFTPFile(object):
-    implements(ISFTPFile)
-
-    def __init__(self, server, filename, flags, attrs):
-        self.server   = server
-        self.filename = filename
-        self.attrs    = attrs
-
-        if flags & FXF_APPEND == FXF_APPEND:
-            self.append = True
-        else:
-            self.append = False
-
-    def close(self):
-        pass
-
-    def readChunk(self, offset, length):
-        outstream = StringIO()
-        self.server.avatar.fs_access.readfile(self.filename,
-                                              outstream,
-                                              start = offset,
-                                              end   = offset + length)
-        chunk = outstream.getvalue()
-        outstream.close()
-
-        return chunk
-
-    def writeChunk(self, offset, data):
-        instream = StringIO(data)
-        self.server.avatar.fs_access.writefile(self.filename,
-                                               instream,
-                                               start = offset,
-                                               end   = offset + len(data),
-                                               append = self.append)
-        instream.close()
-
-    def getAttrs(self):
-        attrs = self.server.avatar.fs_access.lsinfo(self.filename)
-
-        retattrs = {}
-        retattrs['size'] = attrs.get('size', 0)
-        ## uid
-        ## gid
-        ## permissions
-        permissions = 0
-        def _isKeyTrue(key):
-            return attrs.has_key(key) and attrs[key] is True
-        if _isKeyTrue('owner_readable'):
-            permissions |= stat.S_IRUSR
-        if _isKeyTrue('owner_writable'):
-            permissions |= stat.S_IWUSR
-        if _isKeyTrue('owner_executable'):
-            permissions |= stat.S_IXUSR
-        if _isKeyTrue('group_readable'):
-            permissions |= stat.S_IRGRP
-        if _isKeyTrue('group_writable'):
-            permissions |= stat.S_IWGRP
-        if _isKeyTrue('group_executable'):
-            permissions |= stat.S_IXGRP
-        if _isKeyTrue('other_readable'):
-            permissions |= stat.S_IROTH
-        if _isKeyTrue('other_writable'):
-            permissions |= stat.S_IWOTH
-        if _isKeyTrue('other_executable'):
-            permissions |= stat.S_IXOTH
-        filetype = self.server.avatar.fs_access.type(self.filename)
-        if filetype == 'd':
-            permissions |= stat.S_IFDIR
-        elif filetype == 'f':
-            permissions |= stat.S_IFREG
-        retattrs['permissions'] = permissions
-        ## atime
-        if attrs['mtime'] is not None:
-            retattrs['mtime'] = attrs['mtime']
-        return retattrs
-
-    def setAttrs(self, attrs):
-        ## IFileSystem doesn't currently support the setting of attributes.
-        pass
-
-## modified from twisted.consh.unix._lsLine
-def _lsLine(name, s):
-    ## mode = s.st_mode
-    mode = s['permissions']
-    perms = array.array('c', '-'*10)
-    ft = stat.S_IFMT(mode)
-    if stat.S_ISDIR(ft): perms[0] = 'd'
-    elif stat.S_ISCHR(ft): perms[0] = 'c'
-    elif stat.S_ISBLK(ft): perms[0] = 'b'
-    elif stat.S_ISREG(ft): perms[0] = '-'
-    elif stat.S_ISFIFO(ft): perms[0] = 'f'
-    elif stat.S_ISLNK(ft): perms[0] = 'l'
-    elif stat.S_ISSOCK(ft): perms[0] = 's'
-    else: perms[0] = '!'
-    # user
-    if mode&stat.S_IRUSR:perms[1] = 'r'
-    if mode&stat.S_IWUSR:perms[2] = 'w'
-    if mode&stat.S_IXUSR:perms[3] = 'x'
-    # group
-    if mode&stat.S_IRGRP:perms[4] = 'r'
-    if mode&stat.S_IWGRP:perms[5] = 'w'
-    if mode&stat.S_IXGRP:perms[6] = 'x'
-    # other
-    if mode&stat.S_IROTH:perms[7] = 'r'
-    if mode&stat.S_IWOTH:perms[8] = 'w'
-    if mode&stat.S_IXOTH:perms[9] = 'x'
-    # suid/sgid
-    if mode&stat.S_ISUID:
-        if perms[3] == 'x': perms[3] = 's'
-        else: perms[3] = 'S'
-    if mode&stat.S_ISGID:
-        if perms[6] == 'x': perms[6] = 's'
-        else: perms[6] = 'S'
-    l = perms.tostring()
-    ## l += str(s.st_nlink).rjust(5) + ' '
-    l += str(0).rjust(5) + ' '
-    ## un = str(s.st_uid)
-    un = s.get('owner_name', 'na')
-    l += un.ljust(9)
-    ## gr = str(s.st_gid)
-    gr = s.get('group_name', 'na')
-    l += gr.ljust(9)
-    ## sz = str(s.st_size)
-    sz = str(s.get('size', 0))
-    l += sz.rjust(8)
-    l += ' '
-    ## sixmo = 60 * 60 * 24 * 7 * 26
-    sixmo = datetime.timedelta(days = 26 * 7) # six months time delta object
-    ## if s.st_mtime + sixmo < time.time(): # last edited more than 6mo ago
-    mtime = s['mtime']
-    if (mtime + sixmo).date() < datetime.datetime.now().date():
-        ## l += time.strftime("%b %2d  %Y ", time.localtime(s.st_mtime))
-        l += mtime.strftime("%b %2d  %Y ") ## , time.localtime(mtime))
-    else:
-        ## l += time.strftime("%b %2d %H:%S ", time.localtime(s.st_mtime))
-        l += mtime.strftime("%b %2d %H:%S ") ## , time.localtime(mtime))
-    l += name
-    return l

Deleted: Zope3/trunk/src/zope/app/twisted/ftp/sftpserver.py
===================================================================
--- Zope3/trunk/src/zope/app/twisted/ftp/sftpserver.py	2006-12-20 19:26:47 UTC (rev 71634)
+++ Zope3/trunk/src/zope/app/twisted/ftp/sftpserver.py	2006-12-20 19:57:24 UTC (rev 71635)
@@ -1,179 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2001,2002,2003 Zope Corporation and Contributors.
-# All Rights Reserved.
-#
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE.
-#
-##############################################################################
-""" Twisted specific integration classes for SFTP.
-"""
-from zope.interface import implements
-
-from zope.app.twisted.interfaces import IFileSystem
-
-from twisted.cred.portal import IRealm, Portal
-from twisted.cred.credentials import IUsernamePassword
-
-from twisted.conch.ssh.filetransfer import FileTransferServer
-from twisted.conch.ssh.connection import SSHConnection
-from twisted.conch.ssh.session import SSHSession
-from twisted.conch.ssh.common import getNS
-from twisted.conch.ssh.forwarding import openConnectForwardingClient
-try:
-    from twisted.conch.ssh.factory import SSHFactory
-    from twisted.conch.ssh.userauth import SSHUserAuthServer
-    from twisted.conch.ssh.keys import getPublicKeyString, \
-         getPrivateKeyObject, objectType
-except ImportError, e:
-    SSHFactory = object # so we can create the SFTPFactory
-    class SSHFactory(object):
-        def doStart(self):
-            raise ImportError, \
-                  "Please install pycrypto to run the SFTP server."
-    SSHUserAuthServer = None
-from twisted.conch.avatar import ConchUser
-from twisted.conch.interfaces import IConchUser
-
-from utils import PublisherFileSystem, ZopeSimpleAuthenticatation
-
-class ZopeAvatar(ConchUser):
-    implements(IConchUser)
-    
-    def __init__(self, fs_access):
-        ConchUser.__init__(self)
-
-        assert IFileSystem.providedBy(fs_access), "Invalid File Publisher"
-        self.fs_access = fs_access
-
-        self.channelLookup.update(
-            {'session': SSHSession,
-             'direct-tcpip': openConnectForwardingClient})
-
-        self.subsystemLookup.update(
-            {'sftp': FileTransferServer})
-
-
-class SFTPRealm(object):
-    implements(IRealm)
-
-    def __init__(self, request_factory):
-        self.request_factory = request_factory
-
-    def requestAvatar(self, avatarId, mind, *interfaces):
-        """
-          >>> from utils import FTPRequestFactory
-          >>> from ZODB.tests.util import DB
-          >>> from twisted.cred import credentials
-          >>> creds = credentials.UsernamePassword('bob', '123')
-          >>> db = DB()
-          >>> request_factory = FTPRequestFactory(db)
-          >>> realm = SFTPRealm(request_factory)
-          >>> print realm.request_factory is request_factory
-          True
-
-        Now test this method
-
-          >>> result = realm.requestAvatar(creds, None, IConchUser)
-          >>> print result[0] is IConchUser
-          True
-          >>> print isinstance(result[1], ZopeAvatar)
-          True
-
-        ZopeAvatar should contain a PublisherFileSystem instance assigned to
-        its fs_access attribute.
-          
-          >>> from utils import PublisherFileSystem
-          >>> print isinstance(result[1].fs_access, PublisherFileSystem)
-          True
-
-        Make sure the PublisherFileSystems credentials are correct.
-          
-          >>> print result[1].fs_access.credentials[0] == 'bob'
-          True
-          >>> print result[1].fs_access.credentials[1] == '123'
-          True
-
-        This method only supports the IConchUser has the interface for
-        the avatar.
-
-          >>> from zope.interface import Interface
-          >>> realm.requestAvatar(creds, None, Interface)
-          Traceback (most recent call last):
-          ...
-          NotImplementedError: Only IConchUser interface is supported by this realm.
-          >>> db.close()
-
-        """
-        if IConchUser in interfaces:
-            fs_access = PublisherFileSystem(
-                (avatarId.username, avatarId.password),
-                self.request_factory)
-            avatar = ZopeAvatar(fs_access)
-            return IConchUser, avatar, lambda : None
-        raise NotImplementedError, \
-              "Only IConchUser interface is supported by this realm."
-
-
-class SFTPFactory(SSHFactory):
-    services = {
-        'ssh-userauth': SSHUserAuthServer,
-        'ssh-connection': SSHConnection
-        }
-
-    def getPublicKeys(self):
-        ks = {}
-        k = getPublicKeyString(self.hostkey + '.pub')
-        t = getNS(k)[0]
-        ks[t] = k
-        return ks
-
-    def getPrivateKeys(self):
-        ks = {}
-        k = getPrivateKeyObject(self.hostkey)
-        t = objectType(k)
-        ks[t] = k
-        return ks
-
-    def getPrimes(self):
-        return None
-
-    def __init__(self, request_factory, hostkey):
-        """
-        The portal performs a simple authentication
-
-          >>> from ZODB.tests.util import DB
-          >>> from utils import FTPRequestFactory
-          >>> db = DB()
-          >>> request_factory = FTPRequestFactory(db)
-          >>> sftpfactory = SFTPFactory(request_factory, hostkey = None)
-          >>> print sftpfactory.portal.realm.request_factory is request_factory
-          True
-
-        So the portal initializes ok.
-          
-          >>> from twisted.cred import credentials
-          >>> portal = sftpfactory.portal
-          >>> creds = credentials.UsernamePassword('bob', '123')
-          >>> deferred = portal.login(creds, None, IConchUser)
-          >>> result = deferred.result
-          >>> print type(result)
-          <type 'tuple'>
-          >>> db.close()
-
-        The result variable should be the return value of the 'requestAvatar'
-        method of the SFTPRealm method. This method contains its own test.
-        """
-        self.hostkey = hostkey
-        
-        r = SFTPRealm(request_factory)
-        p = Portal(r)
-
-        p.registerChecker(ZopeSimpleAuthenticatation(),
-                          IUsernamePassword)
-        self.portal = p

Modified: Zope3/trunk/src/zope/app/twisted/ftp/tests/test_ftpserver.py
===================================================================
--- Zope3/trunk/src/zope/app/twisted/ftp/tests/test_ftpserver.py	2006-12-20 19:26:47 UTC (rev 71634)
+++ Zope3/trunk/src/zope/app/twisted/ftp/tests/test_ftpserver.py	2006-12-20 19:57:24 UTC (rev 71635)
@@ -22,7 +22,6 @@
     return TestSuite((
         doctest.DocTestSuite('zope.app.twisted.ftp.server'),
         doctest.DocTestSuite('zope.app.twisted.ftp.utils'),
-        ## doctest.DocTestSuite('zope.app.twisted.ftp.sftpserver'),
         ))
 
 if __name__=='__main__':

Modified: Zope3/trunk/src/zope/app/twisted/ftp/utils.py
===================================================================
--- Zope3/trunk/src/zope/app/twisted/ftp/utils.py	2006-12-20 19:26:47 UTC (rev 71634)
+++ Zope3/trunk/src/zope/app/twisted/ftp/utils.py	2006-12-20 19:57:24 UTC (rev 71635)
@@ -11,8 +11,9 @@
 # FOR A PARTICULAR PURPOSE.
 #
 ##############################################################################
-"""Contains the implementation of the Publisher File System for use within
-the FTP and SFTP servers. It also contains an implementation of
+"""
+Contains the implementation of the Publisher File System for use within
+the FTP servers. It also contains an implementation of
 twisted.cred.checkers.ICredentialsChecker for authentiating users against
 the twisted.cred.portal.Portal.
 """

Modified: Zope3/trunk/src/zope/app/twisted/interfaces.py
===================================================================
--- Zope3/trunk/src/zope/app/twisted/interfaces.py	2006-12-20 19:26:47 UTC (rev 71634)
+++ Zope3/trunk/src/zope/app/twisted/interfaces.py	2006-12-20 19:57:24 UTC (rev 71635)
@@ -53,7 +53,7 @@
         This differs only in respect to that it needs the host key path.
         """
 
-## this is going here since I need it for FTP and SFTP.
+## this is going here since I need it for FTP.
 class IFileSystem(Interface):
     """An abstract filesystem.
 

Deleted: Zope3/trunk/ssh_host_rsa_key
===================================================================
--- Zope3/trunk/ssh_host_rsa_key	2006-12-20 19:26:47 UTC (rev 71634)
+++ Zope3/trunk/ssh_host_rsa_key	2006-12-20 19:57:24 UTC (rev 71635)
@@ -1,15 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIICWQIBAAKBgQDdsFPHwMxwC94cNJp/DCmLmQSs6w/qs9yRhXWCMpzzWIv9BP+j
-XXMlwSvORJENaQCawOZA1g5cbT44ooLGbXwSMyHjygN5C6J+Kmx6ZeE6Oj/Z/0Lz
-2ub17W1jMBSFuoJljK6mNB+DwnneF0HoA+9bKnyalzcsska2NRGs1URPlQIBIwKB
-gHhYZ/65HoX30Fh0U96RkuVhshS6HpVaUyptBUatwuqAhoIKBx4ramTz1fOhkJJA
-UMkJoZDpOv75eYx1ejE0HscJ50202CMsQ1cmgm2FSaDaKCpBUFyD0XUhJwqURq0U
-D6Yhvo6RoXHInP/qBtIw5LVgPQPkjdKE797bQTb6jKwrAkEA/rPfwjzYE1bZnxrK
-G6AUcLAgi/IK7lN4s94sN3PQMAyWCLl54aIE8QsPcV7+nWJVU7OWV/m9CcLBTgI8
-iL0HXQJBAN7RZ2nMsQUS9oe/vh7Udr5uKD5ej1gRpXXAj0XNrJtmdQ/m/UY5JnrU
-VYr+xIW/S++b/RN7jYs14R1Gds/U/ZkCQHu2c/9CH87hCp28jg1rAp0iWPOEMTHu
-B21Op8Mpn6JPQY81hFemd23Diyhv+ANNBN+DHSNqrEaRy5rrJLdxwb8CQBMZQ2DX
-B9vdDdEfEEvJEX4JcSnq2RYtZfQmcq42M13G9BdOUDk4GT26bbt07EX6dDkb/7/X
-Y+dcY8CuRLK6fCMCQEZ89lCt6ko74P6NE/ffCf7VET8bBh5/vuSqIgqNxvCLO1iE
-TE603x/EdIMeHfw8qmAmOsZZ7WU+frpx7JvpL8Y=
------END RSA PRIVATE KEY-----

Deleted: Zope3/trunk/ssh_host_rsa_key.pub
===================================================================
--- Zope3/trunk/ssh_host_rsa_key.pub	2006-12-20 19:26:47 UTC (rev 71634)
+++ Zope3/trunk/ssh_host_rsa_key.pub	2006-12-20 19:57:24 UTC (rev 71635)
@@ -1 +0,0 @@
-ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEA3bBTx8DMcAveHDSafwwpi5kErOsP6rPckYV1gjKc81iL/QT/o11zJcErzkSRDWkAmsDmQNYOXG0+OKKCxm18EjMh48oDeQuifipsemXhOjo/2f9C89rm9e1tYzAUhbqCZYyupjQfg8J53hdB6APvWyp8mpc3LLJGtjURrNVET5U= michael at training.office.openapp.biz

Modified: Zope3/trunk/zope.conf.in
===================================================================
--- Zope3/trunk/zope.conf.in	2006-12-20 19:26:47 UTC (rev 71634)
+++ Zope3/trunk/zope.conf.in	2006-12-20 19:57:24 UTC (rev 71635)
@@ -38,13 +38,6 @@
 #  address 8021
 #</server>
 
-# You must install pycrypto to use the SFTP server.
-# <sshserver>
-#   type SFTP
-#   address 8115
-#   hostkey ssh_host_rsa_key
-# </sshserver>
-
 # Standard Filestorage
 <zodb>
   <filestorage>

Deleted: Zope3/trunk/zopeskel/etc/ssh_host_rsa_key
===================================================================
--- Zope3/trunk/zopeskel/etc/ssh_host_rsa_key	2006-12-20 19:26:47 UTC (rev 71634)
+++ Zope3/trunk/zopeskel/etc/ssh_host_rsa_key	2006-12-20 19:57:24 UTC (rev 71635)
@@ -1,15 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIICWQIBAAKBgQDdsFPHwMxwC94cNJp/DCmLmQSs6w/qs9yRhXWCMpzzWIv9BP+j
-XXMlwSvORJENaQCawOZA1g5cbT44ooLGbXwSMyHjygN5C6J+Kmx6ZeE6Oj/Z/0Lz
-2ub17W1jMBSFuoJljK6mNB+DwnneF0HoA+9bKnyalzcsska2NRGs1URPlQIBIwKB
-gHhYZ/65HoX30Fh0U96RkuVhshS6HpVaUyptBUatwuqAhoIKBx4ramTz1fOhkJJA
-UMkJoZDpOv75eYx1ejE0HscJ50202CMsQ1cmgm2FSaDaKCpBUFyD0XUhJwqURq0U
-D6Yhvo6RoXHInP/qBtIw5LVgPQPkjdKE797bQTb6jKwrAkEA/rPfwjzYE1bZnxrK
-G6AUcLAgi/IK7lN4s94sN3PQMAyWCLl54aIE8QsPcV7+nWJVU7OWV/m9CcLBTgI8
-iL0HXQJBAN7RZ2nMsQUS9oe/vh7Udr5uKD5ej1gRpXXAj0XNrJtmdQ/m/UY5JnrU
-VYr+xIW/S++b/RN7jYs14R1Gds/U/ZkCQHu2c/9CH87hCp28jg1rAp0iWPOEMTHu
-B21Op8Mpn6JPQY81hFemd23Diyhv+ANNBN+DHSNqrEaRy5rrJLdxwb8CQBMZQ2DX
-B9vdDdEfEEvJEX4JcSnq2RYtZfQmcq42M13G9BdOUDk4GT26bbt07EX6dDkb/7/X
-Y+dcY8CuRLK6fCMCQEZ89lCt6ko74P6NE/ffCf7VET8bBh5/vuSqIgqNxvCLO1iE
-TE603x/EdIMeHfw8qmAmOsZZ7WU+frpx7JvpL8Y=
------END RSA PRIVATE KEY-----

Modified: Zope3/trunk/zopeskel/etc/zope.conf.in
===================================================================
--- Zope3/trunk/zopeskel/etc/zope.conf.in	2006-12-20 19:26:47 UTC (rev 71634)
+++ Zope3/trunk/zopeskel/etc/zope.conf.in	2006-12-20 19:57:24 UTC (rev 71635)
@@ -53,14 +53,6 @@
 #  address 8021
 #</server>
 
-# You must install pycrypto to use the SFTP server.
-# Server: Twisted only!
-# <sshserver>
-#   type SFTP
-#   address 8115
-#   hostkey ssh_host_rsa_key
-# </sshserver>
-
 # Standard Filestorage
 <zodb>
   <filestorage>



More information about the Zope3-Checkins mailing list