Bring back authentication through SASL EXTERNAL

(and only update the ssl context before it gets used)
This commit is contained in:
mathieui 2014-12-11 19:27:13 +01:00
parent 423974f90d
commit b5930ca958
No known key found for this signature in database
GPG key ID: C59F84CEEFD616E3
2 changed files with 12 additions and 11 deletions

View file

@ -21,7 +21,7 @@ log = logging.getLogger(__name__)
class XEP_0257(BasePlugin): class XEP_0257(BasePlugin):
name = 'xep_0257' name = 'xep_0257'
description = 'XEP-0258: Client Certificate Management for SASL EXTERNAL' description = 'XEP-0257: Client Certificate Management for SASL EXTERNAL'
dependencies = set(['xep_0030']) dependencies = set(['xep_0030'])
stanza = stanza stanza = stanza

View file

@ -111,7 +111,7 @@ class XMLStream(object):
#: The list of accepted ciphers, in OpenSSL Format. #: The list of accepted ciphers, in OpenSSL Format.
#: It might be useful to override it for improved security #: It might be useful to override it for improved security
#: over the python defaults. #: over the python defaults.
self._ciphers = None self.ciphers = None
#: Path to a file containing certificates for verifying the #: Path to a file containing certificates for verifying the
#: server SSL certificate. A non-``None`` value will trigger #: server SSL certificate. A non-``None`` value will trigger
@ -472,6 +472,16 @@ class XMLStream(object):
loop = asyncio.get_event_loop() loop = asyncio.get_event_loop()
self.event_when_connected = "tls_success" self.event_when_connected = "tls_success"
self.ssl_context.set_ciphers(self.ciphers)
if self.keyfile and self.certfile:
try:
self.ssl_context.load_cert_chain(self.certfile, self.keyfile)
except (ssl.SSLError, OSError):
log.debug('Error loading the cert chain:', exc_info=True)
else:
log.debug('Loaded cert file %s and key file %s',
self.certfile, self.keyfile)
ssl_connect_routine = loop.create_connection(lambda: self, ssl=self.ssl_context, ssl_connect_routine = loop.create_connection(lambda: self, ssl=self.ssl_context,
sock=self.socket, sock=self.socket,
server_hostname=self.address[0]) server_hostname=self.address[0])
@ -911,12 +921,3 @@ class XMLStream(object):
""" """
pass pass
@property
def ciphers(self):
return self._ciphers
@ciphers.setter
def ciphers(self, value):
self.ssl_context.set_ciphers(value)
self._ciphers = value