def onUse(self, user, data): try: user.socket.transport = ITLSTransport(user.socket.transport) except: user.sendMessage(irc.ERR_STARTTLS, ":STARTTLS failed") else: user.sendMessage( irc.RPL_STARTTLS, ":STARTTLS successful, proceed with TLS handshake") user.socket.transport.startTLS(self.ircd.ssl_cert) user.socket.secure = ISSLTransport(user.socket.transport, None) is not None
def execute(self, user, data): if user.secureConnection: user.sendMessage(irc.ERR_STARTTLS, "The connection is already secure") return True try: secureTransport = ITLSTransport(user.transport) except TypeError: user.sendMessage(irc.ERR_STARTTLS, "Failed to initialize transport for STARTTLS") return True if secureTransport is None: user.sendMessage(irc.ERR_STARTTLS, "Failed to initialize transport for STARTTLS") return True user.transport = secureTransport user.sendMessage(irc.RPL_STARTTLS, "STARTTLS successful; proceed with TLS handshake") secureTransport.startTLS(self.certContext) user.secureConnection = ISSLTransport(secureTransport, None) is not None return True