def setUp(self): """Prepares to run the tests. The preparation consist on creating temporary files containing the keys and certificates and starting a thread that runs a simple SSL server. """ # Save the key to a file: with tempfile.NamedTemporaryFile(delete=False) as tmp: tmp.write(KEY) self.keyfile = tmp.name # Save the certificate to a file: with tempfile.NamedTemporaryFile(delete=False) as tmp: tmp.write(CERTIFICATE) self.certfile = tmp.name # Create the server socket: self.server = socket.socket() self.server = SSLServerSocket( raw=self.server, keyfile=self.keyfile, certfile=self.certfile, ca_certs=self.certfile) self.address = self.tryBind(ADDRESS) self.server.listen(5) # Start the server thread: self.thread = SSLServerThread(self.server) self.thread.start()
def __init__(self): self.server = SimpleXMLRPCServer.SimpleXMLRPCServer((HOST, 0), logRequests=False) self.server.socket = SSLServerSocket(raw=self.server.socket, keyfile=KEY_FILE, certfile=CRT_FILE, ca_certs=CRT_FILE) _, self.port = self.server.socket.getsockname() self.server.register_instance(MathService())
def _create_socket(self, host, port): addr = socket.getaddrinfo(host, port, socket.AF_INET, socket.SOCK_STREAM) if not addr: raise Exception("Could not translate address '%s:%s'" % (self._host, str(self._port))) server_socket = socket.socket(addr[0][0], addr[0][1], addr[0][2]) utils.closeOnExec(server_socket.fileno()) server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) server_socket.bind(addr[0][4]) server_socket.listen(5) if self._sslctx: server_socket = SSLServerSocket(raw=server_socket, certfile=self._sslctx.cert_file, keyfile=self._sslctx.key_file, ca_certs=self._sslctx.ca_cert) server_socket.setblocking(0) return server_socket