Index: third_party/twisted_8_1/twisted/conch/manhole_ssh.py |
diff --git a/third_party/twisted_8_1/twisted/conch/manhole_ssh.py b/third_party/twisted_8_1/twisted/conch/manhole_ssh.py |
deleted file mode 100644 |
index 7757fadab2720c78cdbdb44b34f82dc5035864e4..0000000000000000000000000000000000000000 |
--- a/third_party/twisted_8_1/twisted/conch/manhole_ssh.py |
+++ /dev/null |
@@ -1,146 +0,0 @@ |
-# -*- test-case-name: twisted.conch.test.test_manhole -*- |
-# Copyright (c) 2001-2004 Twisted Matrix Laboratories. |
-# See LICENSE for details. |
- |
-""" |
-insults/SSH integration support. |
- |
-@author: U{Jp Calderone<mailto:exarkun@twistedmatrix.com>} |
-""" |
- |
-from zope.interface import implements |
- |
-from twisted.conch import avatar, interfaces as iconch, error as econch |
-from twisted.conch.ssh import factory, keys, session |
-from twisted.cred import credentials, checkers, portal |
-from twisted.python import components |
- |
-from twisted.conch.insults import insults |
- |
-class _Glue: |
- """A feeble class for making one attribute look like another. |
- |
- This should be replaced with a real class at some point, probably. |
- Try not to write new code that uses it. |
- """ |
- def __init__(self, **kw): |
- self.__dict__.update(kw) |
- |
- def __getattr__(self, name): |
- raise AttributeError(self.name, "has no attribute", name) |
- |
-class TerminalSessionTransport: |
- def __init__(self, proto, chainedProtocol, avatar, width, height): |
- self.proto = proto |
- self.avatar = avatar |
- self.chainedProtocol = chainedProtocol |
- |
- session = self.proto.session |
- |
- self.proto.makeConnection( |
- _Glue(write=self.chainedProtocol.dataReceived, |
- loseConnection=lambda: avatar.conn.sendClose(session), |
- name="SSH Proto Transport")) |
- |
- def loseConnection(): |
- self.proto.loseConnection() |
- |
- self.chainedProtocol.makeConnection( |
- _Glue(write=self.proto.write, |
- loseConnection=loseConnection, |
- name="Chained Proto Transport")) |
- |
- # XXX TODO |
- # chainedProtocol is supposed to be an ITerminalTransport, |
- # maybe. That means perhaps its terminalProtocol attribute is |
- # an ITerminalProtocol, it could be. So calling terminalSize |
- # on that should do the right thing But it'd be nice to clean |
- # this bit up. |
- self.chainedProtocol.terminalProtocol.terminalSize(width, height) |
- |
-class TerminalSession(components.Adapter): |
- implements(iconch.ISession) |
- |
- transportFactory = TerminalSessionTransport |
- chainedProtocolFactory = insults.ServerProtocol |
- |
- def getPty(self, term, windowSize, attrs): |
- self.height, self.width = windowSize[:2] |
- |
- def openShell(self, proto): |
- self.transportFactory( |
- proto, self.chainedProtocolFactory(), |
- iconch.IConchUser(self.original), |
- self.width, self.height) |
- |
- def execCommand(self, proto, cmd): |
- raise econch.ConchError("Cannot execute commands") |
- |
- def closed(self): |
- pass |
- |
-class TerminalUser(avatar.ConchUser, components.Adapter): |
- def __init__(self, original, avatarId): |
- components.Adapter.__init__(self, original) |
- avatar.ConchUser.__init__(self) |
- self.channelLookup['session'] = session.SSHSession |
- |
-class TerminalRealm: |
- userFactory = TerminalUser |
- sessionFactory = TerminalSession |
- |
- transportFactory = TerminalSessionTransport |
- chainedProtocolFactory = insults.ServerProtocol |
- |
- def _getAvatar(self, avatarId): |
- comp = components.Componentized() |
- user = self.userFactory(comp, avatarId) |
- sess = self.sessionFactory(comp) |
- |
- sess.transportFactory = self.transportFactory |
- sess.chainedProtocolFactory = self.chainedProtocolFactory |
- |
- comp.setComponent(iconch.IConchUser, user) |
- comp.setComponent(iconch.ISession, sess) |
- |
- return user |
- |
- def __init__(self, transportFactory=None): |
- if transportFactory is not None: |
- self.transportFactory = transportFactory |
- |
- def requestAvatar(self, avatarId, mind, *interfaces): |
- for i in interfaces: |
- if i is iconch.IConchUser: |
- return (iconch.IConchUser, |
- self._getAvatar(avatarId), |
- lambda: None) |
- raise NotImplementedError() |
- |
-class ConchFactory(factory.SSHFactory): |
- publicKey = 'ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAGEArzJx8OYOnJmzf4tfBEvLi8DVPrJ3/c9k2I/Az64fxjHf9imyRJbixtQhlH9lfNjUIx+4LmrJH5QNRsFporcHDKOTwTTYLh5KmRpslkYHRivcJSkbh/C+BR3utDS555mV' |
- |
- publicKeys = { |
- 'ssh-rsa' : keys.Key.fromString(publicKey) |
- } |
- del publicKey |
- |
- privateKey = """-----BEGIN RSA PRIVATE KEY----- |
-MIIByAIBAAJhAK8ycfDmDpyZs3+LXwRLy4vA1T6yd/3PZNiPwM+uH8Yx3/YpskSW |
-4sbUIZR/ZXzY1CMfuC5qyR+UDUbBaaK3Bwyjk8E02C4eSpkabJZGB0Yr3CUpG4fw |
-vgUd7rQ0ueeZlQIBIwJgbh+1VZfr7WftK5lu7MHtqE1S1vPWZQYE3+VUn8yJADyb |
-Z4fsZaCrzW9lkIqXkE3GIY+ojdhZhkO1gbG0118sIgphwSWKRxK0mvh6ERxKqIt1 |
-xJEJO74EykXZV4oNJ8sjAjEA3J9r2ZghVhGN6V8DnQrTk24Td0E8hU8AcP0FVP+8 |
-PQm/g/aXf2QQkQT+omdHVEJrAjEAy0pL0EBH6EVS98evDCBtQw22OZT52qXlAwZ2 |
-gyTriKFVoqjeEjt3SZKKqXHSApP/AjBLpF99zcJJZRq2abgYlf9lv1chkrWqDHUu |
-DZttmYJeEfiFBBavVYIF1dOlZT0G8jMCMBc7sOSZodFnAiryP+Qg9otSBjJ3bQML |
-pSTqy7c3a2AScC/YyOwkDaICHnnD3XyjMwIxALRzl0tQEKMXs6hH8ToUdlLROCrP |
-EhQ0wahUTCk1gKA4uPD6TMTChavbh4K63OvbKg== |
------END RSA PRIVATE KEY-----""" |
- privateKeys = { |
- 'ssh-rsa' : keys.Key.fromString(privateKey) |
- } |
- del privateKey |
- |
- def __init__(self, portal): |
- self.portal = portal |