class documentation

class TLSMemoryBIOFactory(WrappingFactory): (source)

View In Hierarchy

TLSMemoryBIOFactory adds TLS to connections.
Method __init__ Create a TLSMemoryBIOFactory.
Method logPrefix Annotate the wrapped factory's log prefix with some text indicating TLS is in use.
Class Variable noisy Undocumented
Method _applyProtocolNegotiation Applies ALPN/NPN protocol neogitation to the connection, if the factory supports it.
Method _createConnection Create an OpenSSL connection and set it up good.
Instance Variable _connectionCreator a callable which creates an OpenSSL Connection object.
Instance Variable _creatorInterface the interface which _connectionCreator is expected to implement.

Inherited from WrappingFactory:

Method buildProtocol Undocumented
Method clientConnectionFailed Undocumented
Method clientConnectionLost Undocumented
Method doStart Undocumented
Method doStop Undocumented
Method registerProtocol Called by protocol to register itself.
Method startedConnecting Undocumented
Method unregisterProtocol Called by protocols when they go away.
Instance Variable protocols Undocumented
Instance Variable wrappedFactory Undocumented
def __init__(self, contextFactory, isClient, wrappedFactory): (source)
Create a TLSMemoryBIOFactory.
Parameters
contextFactory:IOpenSSLClientConnectionCreator or IOpenSSLServerConnectionCreator, or, for compatibility with older code, anything implementing twisted.internet.interfaces.IOpenSSLContextFactory. See https://twistedmatrix.com/trac/ticket/7215 for information on the upcoming deprecation of passing a twisted.internet.ssl.ContextFactory here.

Configuration parameters used to create an OpenSSL connection. In order of preference, what you should pass here should be:

  1. twisted.internet.ssl.CertificateOptions (if you're writing a server) or the result of twisted.internet.ssl.optionsForClientTLS (if you're writing a client). If you want security you should really use one of these.
  2. If you really want to implement something yourself, supply a provider of IOpenSSLClientConnectionCreator or IOpenSSLServerConnectionCreator.
  3. If you really have to, supply a twisted.internet.ssl.ContextFactory. This will likely be deprecated at some point so please upgrade to the new interfaces.
isClient:boolIs this a factory for TLS client connections; in other words, those that will send a ClientHello greeting? True if so, False otherwise. This flag determines what interface is expected of contextFactory. If True, contextFactory should provide IOpenSSLClientConnectionCreator; otherwise it should provide IOpenSSLServerConnectionCreator.
wrappedFactory:twisted.internet.interfaces.IProtocolFactoryA factory which will create the application-level protocol.
def logPrefix(self): (source)
Annotate the wrapped factory's log prefix with some text indicating TLS is in use.
Returns
strUndocumented
noisy: bool = (source)

Undocumented

def _applyProtocolNegotiation(self, connection): (source)
Applies ALPN/NPN protocol neogitation to the connection, if the factory supports it.
Parameters
connection:OpenSSL.SSL.ConnectionThe OpenSSL connection object to have ALPN/NPN added to it.
Returns
NoneNothing
def _createConnection(self, tlsProtocol): (source)
Create an OpenSSL connection and set it up good.
Parameters
tlsProtocol:TLSMemoryBIOProtocolThe protocol which is establishing the connection.
Returns
OpenSSL.SSL.Connectionan OpenSSL connection object for tlsProtocol to use
_connectionCreator: 1-argument callable taking TLSMemoryBIOProtocol and returning OpenSSL.SSL.Connection. = (source)
a callable which creates an OpenSSL Connection object.
the interface which _connectionCreator is expected to implement.