Remove unused encryption mode setting

This commit is contained in:
thePR0M3TH3AN
2025-07-02 19:00:49 -04:00
parent c8db87d3d2
commit 57adf0bf01
6 changed files with 28 additions and 89 deletions

View File

@@ -17,7 +17,7 @@ import traceback
from password_manager.manager import PasswordManager from password_manager.manager import PasswordManager
from nostr.client import NostrClient from nostr.client import NostrClient
from constants import INACTIVITY_TIMEOUT from constants import INACTIVITY_TIMEOUT
from utils.key_derivation import EncryptionMode
colorama_init() colorama_init()
@@ -491,14 +491,13 @@ def handle_settings(password_manager: PasswordManager) -> None:
print("1. Profiles") print("1. Profiles")
print("2. Nostr") print("2. Nostr")
print("3. Change password") print("3. Change password")
print("4. Change encryption mode") print("4. Verify Script Checksum")
print("5. Verify Script Checksum") print("5. Backup Parent Seed")
print("6. Backup Parent Seed") print("6. Export database")
print("7. Export database") print("7. Import database")
print("8. Import database") print("8. Set inactivity timeout")
print("9. Set inactivity timeout") print("9. Lock Vault")
print("10. Lock Vault") print("10. Back")
print("11. Back")
choice = input("Select an option: ").strip() choice = input("Select an option: ").strip()
if choice == "1": if choice == "1":
handle_profiles_menu(password_manager) handle_profiles_menu(password_manager)
@@ -507,29 +506,22 @@ def handle_settings(password_manager: PasswordManager) -> None:
elif choice == "3": elif choice == "3":
password_manager.change_password() password_manager.change_password()
elif choice == "4": elif choice == "4":
try:
mode = password_manager.prompt_encryption_mode()
password_manager.change_encryption_mode(mode)
except Exception as exc:
logging.error(f"Error changing encryption mode: {exc}", exc_info=True)
print(colored(f"Error: Failed to change encryption mode: {exc}", "red"))
elif choice == "5":
password_manager.handle_verify_checksum() password_manager.handle_verify_checksum()
elif choice == "6": elif choice == "5":
password_manager.handle_backup_reveal_parent_seed() password_manager.handle_backup_reveal_parent_seed()
elif choice == "7": elif choice == "6":
password_manager.handle_export_database() password_manager.handle_export_database()
elif choice == "8": elif choice == "7":
path = input("Enter path to backup file: ").strip() path = input("Enter path to backup file: ").strip()
if path: if path:
password_manager.handle_import_database(Path(path)) password_manager.handle_import_database(Path(path))
elif choice == "9": elif choice == "8":
handle_set_inactivity_timeout(password_manager) handle_set_inactivity_timeout(password_manager)
elif choice == "10": elif choice == "9":
password_manager.lock_vault() password_manager.lock_vault()
print(colored("Vault locked. Please re-enter your password.", "yellow")) print(colored("Vault locked. Please re-enter your password.", "yellow"))
password_manager.unlock_vault() password_manager.unlock_vault()
elif choice == "11": elif choice == "10":
break break
else: else:
print(colored("Invalid choice.", "red")) print(colored("Invalid choice.", "red"))
@@ -622,12 +614,6 @@ if __name__ == "__main__":
parser = argparse.ArgumentParser() parser = argparse.ArgumentParser()
sub = parser.add_subparsers(dest="command") sub = parser.add_subparsers(dest="command")
parser.add_argument(
"--encryption-mode",
choices=[m.value for m in EncryptionMode],
help="Select encryption mode",
)
exp = sub.add_parser("export") exp = sub.add_parser("export")
exp.add_argument("--file") exp.add_argument("--file")
@@ -636,19 +622,9 @@ if __name__ == "__main__":
args = parser.parse_args() args = parser.parse_args()
mode_value = cfg.get("encryption_mode", EncryptionMode.SEED_ONLY.value)
if args.encryption_mode:
mode_value = args.encryption_mode
try:
enc_mode = EncryptionMode(mode_value)
except ValueError:
logger.error(f"Invalid encryption mode: {mode_value}")
print(colored(f"Error: Invalid encryption mode '{mode_value}'", "red"))
sys.exit(1)
# Initialize PasswordManager and proceed with application logic # Initialize PasswordManager and proceed with application logic
try: try:
password_manager = PasswordManager(encryption_mode=enc_mode) password_manager = PasswordManager()
logger.info("PasswordManager initialized successfully.") logger.info("PasswordManager initialized successfully.")
except Exception as e: except Exception as e:
logger.error(f"Failed to initialize PasswordManager: {e}", exc_info=True) logger.error(f"Failed to initialize PasswordManager: {e}", exc_info=True)

View File

@@ -12,10 +12,7 @@ import bcrypt
from password_manager.vault import Vault from password_manager.vault import Vault
from nostr.client import DEFAULT_RELAYS as DEFAULT_NOSTR_RELAYS from nostr.client import DEFAULT_RELAYS as DEFAULT_NOSTR_RELAYS
from utils.key_derivation import (
EncryptionMode,
DEFAULT_ENCRYPTION_MODE,
)
from constants import INACTIVITY_TIMEOUT from constants import INACTIVITY_TIMEOUT
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@@ -46,7 +43,6 @@ class ConfigManager:
"relays": list(DEFAULT_NOSTR_RELAYS), "relays": list(DEFAULT_NOSTR_RELAYS),
"pin_hash": "", "pin_hash": "",
"password_hash": "", "password_hash": "",
"encryption_mode": DEFAULT_ENCRYPTION_MODE.value,
"inactivity_timeout": INACTIVITY_TIMEOUT, "inactivity_timeout": INACTIVITY_TIMEOUT,
} }
try: try:
@@ -57,7 +53,6 @@ class ConfigManager:
data.setdefault("relays", list(DEFAULT_NOSTR_RELAYS)) data.setdefault("relays", list(DEFAULT_NOSTR_RELAYS))
data.setdefault("pin_hash", "") data.setdefault("pin_hash", "")
data.setdefault("password_hash", "") data.setdefault("password_hash", "")
data.setdefault("encryption_mode", DEFAULT_ENCRYPTION_MODE.value)
data.setdefault("inactivity_timeout", INACTIVITY_TIMEOUT) data.setdefault("inactivity_timeout", INACTIVITY_TIMEOUT)
# Migrate legacy hashed_password.enc if present and password_hash is missing # Migrate legacy hashed_password.enc if present and password_hash is missing
@@ -123,12 +118,6 @@ class ConfigManager:
config["password_hash"] = password_hash config["password_hash"] = password_hash
self.save_config(config) self.save_config(config)
def set_encryption_mode(self, mode: EncryptionMode) -> None:
"""Persist the selected encryption mode in the config."""
config = self.load_config(require_pin=False)
config["encryption_mode"] = mode.value
self.save_config(config)
def set_inactivity_timeout(self, timeout_seconds: float) -> None: def set_inactivity_timeout(self, timeout_seconds: float) -> None:
"""Persist the inactivity timeout in seconds.""" """Persist the inactivity timeout in seconds."""
if timeout_seconds <= 0: if timeout_seconds <= 0:

View File

@@ -696,7 +696,6 @@ class PasswordManager:
) )
self.store_hashed_password(password) self.store_hashed_password(password)
self.config_manager.set_encryption_mode(self.encryption_mode)
logging.info("User password hashed and stored successfully.") logging.info("User password hashed and stored successfully.")
seed_mgr.encrypt_parent_seed(seed) seed_mgr.encrypt_parent_seed(seed)
@@ -1463,7 +1462,6 @@ class PasswordManager:
self.vault.set_encryption_manager(new_mgr) self.vault.set_encryption_manager(new_mgr)
self.vault.save_index(index_data) self.vault.save_index(index_data)
self.config_manager.vault = self.vault self.config_manager.vault = self.vault
config_data["encryption_mode"] = new_mode.value
self.config_manager.save_config(config_data) self.config_manager.save_config(config_data)
self.encryption_manager = new_mgr self.encryption_manager = new_mgr

View File

@@ -1,35 +0,0 @@
import sys
from pathlib import Path
import argparse
import pytest
sys.path.append(str(Path(__file__).resolve().parents[1]))
import main
from utils.key_derivation import EncryptionMode
from password_manager.manager import PasswordManager
def _get_mode(monkeypatch, args=None, cfg=None):
if args is None:
args = []
if cfg is None:
cfg = {}
monkeypatch.setattr(main, "load_global_config", lambda: cfg)
monkeypatch.setattr(sys, "argv", ["prog"] + args)
parser = argparse.ArgumentParser()
parser.add_argument(
"--encryption-mode",
choices=[m.value for m in EncryptionMode],
help="Select encryption mode",
)
parsed = parser.parse_args()
mode_value = cfg.get("encryption_mode", EncryptionMode.SEED_ONLY.value)
if parsed.encryption_mode:
mode_value = parsed.encryption_mode
return EncryptionMode(mode_value)
def test_default_mode_is_seed_only(monkeypatch):
mode = _get_mode(monkeypatch)
assert mode is EncryptionMode.SEED_ONLY

View File

@@ -15,7 +15,7 @@ def _run(argv, monkeypatch):
monkeypatch.setattr(main, "load_global_config", lambda: {}) monkeypatch.setattr(main, "load_global_config", lambda: {})
called = {} called = {}
def fake_init(self, encryption_mode): def fake_init(self, *args, **kwargs):
called["init"] = True called["init"] = True
def fake_export(self, dest): def fake_export(self, dest):

View File

@@ -0,0 +1,11 @@
import sys
from pathlib import Path
sys.path.append(str(Path(__file__).resolve().parents[1]))
from password_manager.manager import PasswordManager
from utils.key_derivation import DEFAULT_ENCRYPTION_MODE
def test_default_encryption_mode():
assert PasswordManager.__init__.__defaults__[0] is DEFAULT_ENCRYPTION_MODE