Example #1
0
    def on_btn_next_clicked(self, button):
        if self.states[self.state] == "finish":
            gtk.main_quit()

        elif self.states[self.state] == "message":
            if self.action == "embed":
                # prepare stego file path
                self.stego_path = os.path.join(os.path.dirname(self.cover), "stego")
                self.stego_filename = os.path.basename(self.cover)
                # check if the "stego" subdir already exists, and create it if not
                if not os.path.exists(self.stego_path):
                    os.mkdir(self.stego_path)
                self.stego = os.path.join(self.stego_path, self.stego_filename)

                self.message = self.message_buf.get_text(
                        self.message_buf.get_start_iter(),
                        self.message_buf.get_end_iter())
                self.msglen = len(self.message)+1
                self.txt_pass1.set_text("")
                self.txt_pass2.set_text("")
                result = self.pass_dlg.run()
                self.pass_dlg.hide()
                if result == 1:
                    self.password = self.txt_pass1.get_text()
                    if self.password != self.txt_pass2.get_text():
                        self.error_pass.run()
                        self.error_pass.hide()
                    else:
                        lime_control.setup_methods(self.password, self.extension)
                        self.method = lime_control.get_best_method(self.cover,
                                self.msglen)
                        if self.method >= 0:
                            lime_control.embed_or_extract_with_method(True,
                                    self.method, self.cover, self.stego,
                                    self.message, self.msglen)
                            self.set_state(self.state + 1)
                        else:
                            print "Kann die Nachricht nicht einbetten."
            elif self.action == "extract":
                gtk.main_quit()

        elif self.states[self.state] == "cover":
            if self.cover_set:
                self.action = "embed"
                self.set_state(self.state + 1)
            else:
                self.error_file.run()
                self.error_file.hide()
Example #2
0
    def on_btn_prev_clicked(self, button):
        if self.states[self.state] == "finish":
            result = self.reset_dlg.run()
            self.reset_dlg.hide()
            if result == gtk.RESPONSE_YES:
                self.reset()
                self.set_state(self.state)

        elif self.states[self.state] == "cover":
            if self.cover_set:
                self.action = "extract"
                num_methods = lime_control.get_num_methods(self.extension)
                self.cmb_method.get_model().clear()
                for i in range(0, num_methods):
                    self.cmb_method.append_text("Methode " + `i+1`)
                self.cmb_method.set_active(0)

                self.txt_pass_m1.set_text("")
                result = self.method_dlg.run()
                self.method_dlg.hide()
                if result == 1:
                    self.password = self.txt_pass_m1.get_text()
                    self.method = self.cmb_method.get_active()
                    if self.method >= 0:
                        lime_control.setup_methods(self.password, self.extension)
                        self.message = lime_control.embed_or_extract_with_method(
                                False,
                                self.method, self.cover, None, None, None)
                        self.set_state(self.state + 1)
                    else:
                        print "Kann die Nachricht nicht extrahieren."
                    self.set_state(1)
            else:
                self.error_file.run()
                self.error_file.hide()

        elif self.states[self.state] == "message":
            if self.action == "embed":
                self.set_state(self.state - 1)

            elif self.action == "extract":
                result = self.reset_dlg.run()
                self.reset_dlg.hide()
                if result == gtk.RESPONSE_YES:
                    self.reset()
                    self.set_state(self.state)