From 30dd09b0b4fd94ca1a4463c9ac303cb95644eb07 Mon Sep 17 00:00:00 2001 From: thePR0M3TH3AN <53631862+PR0M3TH3AN@users.noreply.github.com> Date: Wed, 16 Jul 2025 19:38:32 -0400 Subject: [PATCH 1/2] Fix BIP-85 checksum validation test --- src/tests/test_manager_seed_setup.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/tests/test_manager_seed_setup.py b/src/tests/test_manager_seed_setup.py index e8277c9..ea6baf9 100644 --- a/src/tests/test_manager_seed_setup.py +++ b/src/tests/test_manager_seed_setup.py @@ -12,10 +12,12 @@ def test_validate_bip85_seed_invalid_word(): def test_validate_bip85_seed_checksum_failure(): pm = PasswordManager.__new__(PasswordManager) - m = Mnemonic("english") - phrase = m.generate(strength=128) + # Use a known valid phrase to avoid randomness causing a valid checksum + phrase = ( + "legal winner thank year wave sausage worth useful legal winner thank yellow" + ) words = phrase.split() - words[-1] = "abandon" if words[-1] != "abandon" else "about" + words[-1] = "abandon" bad_phrase = " ".join(words) assert not pm.validate_bip85_seed(bad_phrase) From 6336fb3fe4f73b2016300c9a7c19ae818289c759 Mon Sep 17 00:00:00 2001 From: thePR0M3TH3AN <53631862+PR0M3TH3AN@users.noreply.github.com> Date: Wed, 16 Jul 2025 20:29:29 -0400 Subject: [PATCH 2/2] Clarify key value label --- src/password_manager/manager.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/password_manager/manager.py b/src/password_manager/manager.py index cf457a2..b8ebd09 100644 --- a/src/password_manager/manager.py +++ b/src/password_manager/manager.py @@ -1453,7 +1453,7 @@ class PasswordManager: parent_fingerprint=parent_fp, child_fingerprint=child_fp, ) - label = input("Label: ").strip() + label = input("Label (key): ").strip() if not label: print(colored("Error: Label cannot be empty.", "red")) return @@ -1987,7 +1987,7 @@ class PasswordManager: child_fingerprint=child_fp, ) print(colored("\n[+] Edit Menu:", "green")) - print(colored("L. Edit Label", "cyan")) + print(colored("L. Edit Label (key)", "cyan")) if entry_type == EntryType.PASSWORD.value: print(colored("U. Edit Username", "cyan")) print(colored("R. Edit URL", "cyan")) @@ -1998,7 +1998,7 @@ class PasswordManager: if not choice: break if choice == "l": - new_label = input("New label: ").strip() + new_label = input("New label (key): ").strip() if new_label: self.entry_manager.modify_entry(index, label=new_label) self.is_dirty = True @@ -2328,7 +2328,7 @@ class PasswordManager: value = entry.get("value", "") notes = entry.get("notes", "") archived = entry.get("archived", False) - print(colored(f"Retrieving value for '{label}'.", "cyan")) + print(colored(f"Retrieving value for key '{label}'.", "cyan")) if notes: print(colored(f"Notes: {notes}", "cyan")) tags = entry.get("tags", []) @@ -3056,7 +3056,7 @@ class PasswordManager: print(color_text(f" Tags: {', '.join(tags)}", "index")) elif etype == EntryType.KEY_VALUE.value: print(color_text(" Type: Key/Value", "index")) - print(color_text(f" Label: {entry.get('label', '')}", "index")) + print(color_text(f" Label (key): {entry.get('label', '')}", "index")) print(color_text(f" Value: {entry.get('value', '')}", "index")) notes = entry.get("notes", "") if notes: