예제 #1
0
 def enter_secure_desktop(self):
     """function ran when entering a secure desktop."""
     if self.control_connector is None:
         return
     if not os.path.exists(self.temp_location):
         os.makedirs(self.temp_location)
     channel = str(uuid.uuid4())
     self.sd_server = server.Server(port=0,
                                    password=channel,
                                    bind_host='127.0.0.1')
     port = self.sd_server.server_socket.getsockname()[1]
     server_thread = threading.Thread(target=self.sd_server.run)
     server_thread.daemon = True
     server_thread.start()
     self.sd_relay = RelayTransport(address=('127.0.0.1', port),
                                    serializer=serializer.JSONSerializer(),
                                    channel=channel)
     self.sd_bridge = bridge.BridgeTransport(self.control_connector,
                                             self.sd_relay)
     relay_thread = threading.Thread(target=self.sd_relay.run)
     relay_thread.daemon = True
     relay_thread.start()
     data = [port, channel]
     with open(self.ipc_file, 'wb') as fp:
         json.dump(data, fp)
예제 #2
0
 def enter_secure_desktop(self):
     """function ran when entering a secure desktop."""
     if self.slave_transport is None:
         return
     if not os.path.exists(self.temp_location):
         os.makedirs(self.temp_location)
     channel = str(uuid.uuid4())
     self.sd_server = server.Server(port=0,
                                    password=channel,
                                    bind_host='127.0.0.1')
     port = self.sd_server.server_socket.getsockname()[1]
     server_thread = threading.Thread(target=self.sd_server.run)
     server_thread.daemon = True
     server_thread.start()
     self.sd_relay = RelayTransport(address=('127.0.0.1', port),
                                    serializer=serializer.JSONSerializer(),
                                    channel=channel)
     self.sd_relay.callback_manager.register_callback(
         'msg_client_joined', self.on_master_display_change)
     self.slave_transport.callback_manager.register_callback(
         'msg_set_braille_info', self.on_master_display_change)
     self.sd_bridge = bridge.BridgeTransport(self.slave_transport,
                                             self.sd_relay)
     relay_thread = threading.Thread(target=self.sd_relay.run)
     relay_thread.daemon = True
     relay_thread.start()
     data = [port, channel]
     with open(self.ipc_file, 'wb') as fp:
         json.dump(data, fp)
예제 #3
0
    def enter_secure_desktop(self):
        """function ran when entering a secure desktop.
			So far as I can tell, this function does a few things:
				* checks if any connections are active. If not, returns
				* If a temp directory doesn't exist, makes one, starts a local relay with a random (4 character?) id and writes that info to a file. I assume that this is somehow connecting back to the client running in a non-secure environment
		"""
        if self.control_connector is None:  # No connections are open
            return
        if not os.path.exists(self.temp_location):
            os.makedirs(self.temp_location)
        channel = str(uuid.uuid4())
        self.sd_server = server.Server(port=0,
                                       password=channel,
                                       bind_host='127.0.0.1')
        port = self.sd_server.server_socket.getsockname()[1]
        server_thread = threading.Thread(target=self.sd_server.run)
        server_thread.daemon = True
        server_thread.start()
        self.sd_relay = RelayTransport(address=('127.0.0.1', port),
                                       serializer=serializer.JSONSerializer(),
                                       channel=channel)
        self.sd_bridge = bridge.BridgeTransport(self.control_connector,
                                                self.sd_relay)
        relay_thread = threading.Thread(target=self.sd_relay.run)
        relay_thread.daemon = True
        relay_thread.start()
        data = [port, channel]
        with open(self.ipc_file, 'wb') as fp:
            json.dump(data, fp)