mirror of
https://github.com/PR0M3TH3AN/SeedPass.git
synced 2025-09-08 07:18:47 +00:00
Show script checksum in stats
This commit is contained in:
@@ -328,7 +328,9 @@ Back in the Settings menu you can:
|
||||
* Select `11` to change the inactivity timeout.
|
||||
* Choose `12` to lock the vault and require re-entry of your password.
|
||||
* Select `13` to view seed profile stats. The summary lists counts for
|
||||
passwords, TOTP codes, SSH keys, seed phrases, and PGP keys.
|
||||
passwords, TOTP codes, SSH keys, seed phrases, and PGP keys. It also shows
|
||||
whether both the encrypted database and the script itself pass checksum
|
||||
validation.
|
||||
* Choose `14` to toggle Secret Mode and set the clipboard clear delay.
|
||||
* Select `15` to return to the main menu.
|
||||
|
||||
|
@@ -2497,7 +2497,7 @@ class PasswordManager:
|
||||
stats["entries"] = counts
|
||||
stats["total_entries"] = len(entries)
|
||||
|
||||
# Schema version and checksum status
|
||||
# Schema version and database checksum status
|
||||
stats["schema_version"] = data.get("schema_version")
|
||||
json_content = json.dumps(data, indent=4)
|
||||
current_checksum = hashlib.sha256(json_content.encode("utf-8")).hexdigest()
|
||||
@@ -2510,6 +2510,19 @@ class PasswordManager:
|
||||
stats["checksum_ok"] = False
|
||||
stats["checksum"] = stored
|
||||
|
||||
# Script checksum status
|
||||
script_path = Path(__file__).resolve()
|
||||
try:
|
||||
script_checksum = calculate_checksum(str(script_path))
|
||||
except Exception:
|
||||
script_checksum = None
|
||||
|
||||
if SCRIPT_CHECKSUM_FILE.exists() and script_checksum:
|
||||
stored_script = SCRIPT_CHECKSUM_FILE.read_text().strip()
|
||||
stats["script_checksum_ok"] = stored_script == script_checksum
|
||||
else:
|
||||
stats["script_checksum_ok"] = False
|
||||
|
||||
# Relay info
|
||||
cfg = self.config_manager.load_config(require_pin=False)
|
||||
relays = cfg.get("relays", [])
|
||||
@@ -2582,7 +2595,13 @@ class PasswordManager:
|
||||
print(colored(f"Schema version: {stats['schema_version']}", "cyan"))
|
||||
print(
|
||||
colored(
|
||||
f"Checksum ok: {'yes' if stats['checksum_ok'] else 'no'}",
|
||||
f"Database checksum ok: {'yes' if stats['checksum_ok'] else 'no'}",
|
||||
"cyan",
|
||||
)
|
||||
)
|
||||
print(
|
||||
colored(
|
||||
f"Script checksum ok: {'yes' if stats['script_checksum_ok'] else 'no'}",
|
||||
"cyan",
|
||||
)
|
||||
)
|
||||
|
Reference in New Issue
Block a user