From ddee3d5ccc1764b2a2dc0006cc19488fd3027c85 Mon Sep 17 00:00:00 2001 From: thePR0M3TH3AN <53631862+PR0M3TH3AN@users.noreply.github.com> Date: Tue, 1 Jul 2025 23:01:38 -0400 Subject: [PATCH] Fix password hash storage when adding new seed profile --- src/password_manager/manager.py | 13 +++++++++++++ src/password_manager/migrations.py | 4 +++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/password_manager/manager.py b/src/password_manager/manager.py index f28edad..a5387a2 100644 --- a/src/password_manager/manager.py +++ b/src/password_manager/manager.py @@ -548,6 +548,12 @@ class PasswordManager: seed_mgr = EncryptionManager(seed_key, fingerprint_dir) self.vault = Vault(self.encryption_manager, fingerprint_dir) + # Ensure config manager is set for the new fingerprint + self.config_manager = ConfigManager( + vault=self.vault, + fingerprint_dir=fingerprint_dir, + ) + # Encrypt and save the parent seed seed_mgr.encrypt_parent_seed(parent_seed) logging.info("Parent seed encrypted and saved successfully.") @@ -684,6 +690,13 @@ class PasswordManager: self.vault = Vault(self.encryption_manager, fingerprint_dir) + # Ensure the config manager points to the new fingerprint before + # storing the hashed password + self.config_manager = ConfigManager( + vault=self.vault, + fingerprint_dir=fingerprint_dir, + ) + self.store_hashed_password(password) logging.info("User password hashed and stored successfully.") diff --git a/src/password_manager/migrations.py b/src/password_manager/migrations.py index e1e6843..5984279 100644 --- a/src/password_manager/migrations.py +++ b/src/password_manager/migrations.py @@ -7,7 +7,9 @@ from typing import Callable, Dict MIGRATIONS: Dict[int, Callable[[dict], dict]] = {} -def migration(from_ver: int) -> Callable[[Callable[[dict], dict]], Callable[[dict], dict]]: +def migration( + from_ver: int, +) -> Callable[[Callable[[dict], dict]], Callable[[dict], dict]]: """Register a migration function from *from_ver* to *from_ver* + 1.""" def decorator(func: Callable[[dict], dict]) -> Callable[[dict], dict]: