def check_for_db(): global gpg_passphrase global preloader if not os.path.isfile('pwmanager.sqlite3.gpg'): print("\nIt looks like this is the first run.") gpg_passphrase = str(getpass.getpass("Enter a passphrase to access your credentials: ")) preloader = True wait = threading.Thread(target=loader, daemon=True) wait.start() create_new_db() encrypt_db(gpg_passphrase) preloader = False wait.join() else: gpg_passphrase = str(getpass.getpass("\nEnter the passphrase to unlock your credentials: ")) preloader = True wait = threading.Thread(target=loader, daemon=True) wait.start() decrypt_db(gpg_passphrase) encrypt_db(gpg_passphrase) preloader = False wait.join()
def add_existing_creds(): global preloader valid = False while valid == False: account_name = get_account_name() username = get_username() pw = get_password() preloader = True wait = threading.Thread(target=loader, daemon=True) wait.start() if os.path.isfile('pwmanager.sqlite3.gpg'): decrypt_db(gpg_passphrase) try: add_new_creds(account_name, username, pw) print("\nAdded credentials successfully.") valid = True except IntegrityError: print("\n[ERROR] Account or service name already exists.") if not os.path.isfile('pwmanager.sqlite3.gpg'): encrypt_db(gpg_passphrase) preloader = False wait.join()
def get_id(): global preloader preloader = True wait = threading.Thread(target=loader, daemon=True) wait.start() if os.path.isfile('pwmanager.sqlite3.gpg'): decrypt_db(gpg_passphrase) view_all_creds() total_creds = count_creds() if not os.path.isfile('pwmanager.sqlite3.gpg'): encrypt_db(gpg_passphrase) preloader = False wait.join() valid = False while valid == False: try: id = int(input("Enter the ID of the credentials to update: ")) if id > total_creds or id < 1: print("\n[ERROR] You must enter a valid ID.\n") else: valid = True return id except ValueError: print("\n[ERROR] You must enter a valid ID.\n")
def view_all_credentials(): global preloader preloader = True wait = threading.Thread(target=loader, daemon=True) wait.start() if os.path.isfile('pwmanager.sqlite3.gpg'): decrypt_db(gpg_passphrase) view_all_creds() if not os.path.isfile('pwmanager.sqlite3.gpg'): encrypt_db(gpg_passphrase) preloader = False wait.join()
def create_new_creds(): global preloader valid = False while valid == False: account_name = get_account_name() username = get_username() pw_length = get_pw_length() pw_chars = get_pw_chars() pw = create_pw(pw_length, pw_chars) try: preloader = True wait = threading.Thread(target=loader, daemon=True) wait.start() if os.path.isfile('pwmanager.sqlite3.gpg'): decrypt_db(gpg_passphrase) add_new_creds(account_name, username, pw) if not os.path.isfile('pwmanager.sqlite3.gpg'): encrypt_db(gpg_passphrase) preloader = False wait.join() valid = True except IntegrityError: print("\n[ERROR] Account or service name already exists.") preloader = True wait = threading.Thread(target=loader, daemon=True) wait.start() if not os.path.isfile('pwmanager.sqlite3.gpg'): encrypt_db(gpg_passphrase) preloader = False wait.join()
def update_credentials(): global preloader valid = False while valid == False: method_choice = update_creds_method() if method_choice == 1: id = get_id() field = get_field_choice() if field == "accountname": new_cred = get_account_name() elif field == "username": new_cred = get_username() elif field == "password": pw_method = get_pw_method() if pw_method == 1: pw_length = get_pw_length() pw_chars = get_pw_chars() new_cred = create_pw(pw_length, pw_chars) elif pw_method == 2: new_cred = get_password() preloader = True wait = threading.Thread(target=loader, daemon=True) wait.start() if os.path.isfile('pwmanager.sqlite3.gpg'): decrypt_db(gpg_passphrase) try: update_creds_by_id(id, field, new_cred) print("\nUpdate Successful.\n") valid = True except IntegrityError: print("\n[ERROR] Account or service name already exists.") if not os.path.isfile('pwmanager.sqlite3.gpg'): encrypt_db(gpg_passphrase) preloader = False wait.join() elif method_choice == 2: account_name = get_account_name() field = get_field_choice() if field == "accountname": new_cred = get_account_name() elif field == "username": new_cred = get_username() elif field == "password": pw_method = get_pw_method() if pw_method == 1: pw_length = get_pw_length() pw_chars = get_pw_chars() new_cred = create_pw(pw_length, pw_chars) elif pw_method == 2: new_cred = get_password() preloader = True wait = threading.Thread(target=loader, daemon=True) wait.start() if os.path.isfile('pwmanager.sqlite3.gpg'): decrypt_db(gpg_passphrase) try: update_creds_by_account_name(account_name, field, new_cred) print("\nUpdate Successful.") valid = True except IntegrityError: print("\n[ERROR] Account or service name already exists.") if not os.path.isfile('pwmanager.sqlite3.gpg'): encrypt_db(gpg_passphrase) preloader = False wait.join()