class documentation

class TLSMemoryBIOFactory(WrappingFactory): (source)

View In Hierarchy

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

Inherited from WrappingFactory:

Method build​Protocol Undocumented
Method client​Connection​Failed Undocumented
Method client​Connection​Lost Undocumented
Method do​Start Undocumented
Method do​Stop Undocumented
Method register​Protocol Called by protocol to register itself.
Method started​Connecting Undocumented
Method unregister​Protocol Called by protocols when they go away.
Instance Variable protocols Undocumented
Instance Variable wrapped​Factory Undocumented
def __init__(self, contextFactory, isClient, wrappedFactory): (source)
Create a TLSMemoryBIOFactory.
Parameters
context​Factory: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.
is​Client: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.
wrapped​Factory: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
tls​Protocol: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.