Package twisted :: Package conch :: Package ssh :: Module factory :: Class SSHFactory

[frames | no frames]

## Class SSHFactory

    Factory --+
              |
             SSHFactory

Known Subclasses:
  `OpenSSHFactory`

Method Summary
| ``buildProtocol`(self, addr)` Create an instance of a subclass of Protocol.
`tuple` | ``getDHPrime`(self, bits)` Return a tuple of (g, p) for a Diffe-Hellman process, with p being as close to bits bits as possible.
`dict` | ``getPrimes`(self)` Called when the factory is started to get Diffie-Hellman generators and primes to use.
`dict` | ``getPrivateKeys`(self)` Called when the factory is started to get the private portions of the servers host keys.
`dict` | ``getPublicKeys`(self)` Called when the factory is started to get the public portions of the servers host keys.
subclass of {service.SSHService} | ``getService`(self, transport, service)` Return a class to use as a service for the given transport.
| ``startFactory`(self)` This will be called before I begin listening on a Port or Connector.
Inherited from Factory
| ``doStart`(self)` Make sure startFactory is called.
| ``doStop`(self)` Make sure stopFactory is called.
| ``stopFactory`(self)` This will be called before I stop listening on all Ports/Connectors.

Class Variable Summary
`dict` | `services` = `{'ssh-userauth': <Fake userauth.SSHUserAuthSe...`
Inherited from Factory
`tuple` | `__implements__` = `(<class twisted.internet.interfaces.IPr...`
`str` | `noisy` = `'sure, why not'`
`int` | `numPorts` = 0
`NoneType` | `protocol` = None

Method Details

### buildProtocol(self, addr)

Create an instance of a subclass of Protocol.

The returned instance will handle input on an incoming server connection, and an attribute "factory" pointing to the creating factory.

Override this method to alter how Protocol instances get created.

  Parameters:
    `addr` - an object implementing `twisted.internet.interfaces.IAddress`
  Overrides:
    `twisted.internet.protocol.Factory.buildProtocol` (inherited documentation)

### getDHPrime(self, bits)

Return a tuple of (g, p) for a Diffe-Hellman process, with p being as close to bits bits as possible.

  Parameters:
    `bits`
    (type=`int`)
  Returns:
    `tuple`

### getPrimes(self)

Called when the factory is started to get Diffie-Hellman generators and primes to use. Returns a dictionary mapping number of bits to lists of tuple of (generator, prime).

  Returns:
    `dict`

### getPrivateKeys(self)

Called when the factory is started to get the private portions of the servers host keys. Returns a dictionary mapping SSH key types to `Crypto.PublicKey.pubkey.pubkey` objects.

  Returns:
    `dict`

### getPublicKeys(self)

Called when the factory is started to get the public portions of the servers host keys. Returns a dictionary mapping SSH key types to public key strings.

  Returns:
    `dict`

### getService(self, transport, service)

Return a class to use as a service for the given transport.

  Parameters:
    `transport`
    (type=`transport.SSHServerTransport`)
    `service`
    (type=`stR`)
  Returns:
    subclass of {service.SSHService}

### startFactory(self)

This will be called before I begin listening on a Port or Connector.

It will only be called once, even if the factory is connected to multiple ports.

This can be used to perform 'unserialization' tasks that are best put off until things are actually running, such as connecting to a database, opening files, etcetera.

  Overrides:
    `twisted.internet.protocol.Factory.startFactory` (inherited documentation)

Class Variable Details

### services

  Type:
    `dict`
  Value:

        {'ssh-connection': <class twisted.conch.ssh.connection.SSHConnection a\
        t 0x87541bc>,
         'ssh-userauth': <Fake userauth.SSHUserAuthServer>}

Generated by Epydoc 2.0 on Sat May 15 20:07:54 2004 | http://epydoc.sf.net