def ask_master_password(checkpass_socket): reader = InputDevice(infile_path) input_correct = False reader.grab() read_string = "" while True: os.system("clear") exit_code = random_word() checkpass_socket.write_line("secret_code") secret_code = checkpass_socket.read_line() print('your secret code is "%s"' % secret_code) print("please enter %s to exit or master password to continue : " % exit_code), sys.stdout.flush() read_string = get_input_from_reader(reader) if read_string == exit_code: break checkpass_socket.write_line("check " + read_string) result = checkpass_socket.read_line() if result == "1": input_correct = True break reader.ungrab() return input_correct, read_string
def get_approval(app, init_message): r, c = get_console_size() allow_code = random_word() reject_code = random_word() appexec_message = "Executable: %s" % app.executable appexechash_message = "Executable hash: %s" % app.exec_hash allow_message = "to allow enter %s" % allow_code reject_message = "to reject enter %s" % reject_code app_exec_row, app_exec_col = get_random_row_col(len(appexec_message)) app_exec_hash_row, app_exec_hash_col = get_random_row_col(len(appexechash_message)) allow_row, allow_col = get_random_row_col(len(allow_message)) reject_row, reject_col = get_random_row_col(len(reject_message)) del generated[:] while True: stdscr = curses.initscr() curses.start_color() curses.init_pair(1, curses.COLOR_BLUE, curses.COLOR_RED) curses.init_pair(2, curses.COLOR_BLACK, curses.COLOR_GREEN) curses.init_pair(3, curses.COLOR_BLACK, curses.COLOR_CYAN) stdscr.addstr(app_exec_row, app_exec_col, appexec_message, curses.color_pair(3)) stdscr.addstr(app_exec_hash_row, app_exec_hash_col, appexechash_message, curses.color_pair(3)) stdscr.addstr(allow_row, allow_col, allow_message, curses.color_pair(2)) stdscr.addstr(reject_row, reject_col, reject_message, curses.color_pair(1)) stdscr.addstr(r_init, c_init, init_message + " : ", curses.A_REVERSE) stdscr.refresh() reader = InputDevice(infile_path) reader.grab() read_string = get_input_from_reader(reader) reader.ungrab() curses.endwin() if read_string == allow_code: return True elif read_string == reject_code: return False