Esempio n. 1
0
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()
Esempio n. 2
0
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()
Esempio n. 3
0
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")
Esempio n. 4
0
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()
Esempio n. 5
0
def exit_program():
    print("\nGoodbye.")
    if not os.path.isfile('pwmanager.sqlite3.gpg'):
        try:
            preloader = True
            wait = threading.Thread(target=loader, daemon=True)
            wait.start()

            encrypt_db(gpg_passphrase)

            preloader = False
            wait.join()

        except FileNotFoundError:
            pass

    exit(0)
Esempio n. 6
0
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()
Esempio n. 7
0
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()