mirror of
https://github.com/PR0M3TH3AN/SeedPass.git
synced 2025-09-08 15:28:44 +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.
|
* Select `11` to change the inactivity timeout.
|
||||||
* Choose `12` to lock the vault and require re-entry of your password.
|
* 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
|
* 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.
|
* Choose `14` to toggle Secret Mode and set the clipboard clear delay.
|
||||||
* Select `15` to return to the main menu.
|
* Select `15` to return to the main menu.
|
||||||
|
|
||||||
|
@@ -2497,7 +2497,7 @@ class PasswordManager:
|
|||||||
stats["entries"] = counts
|
stats["entries"] = counts
|
||||||
stats["total_entries"] = len(entries)
|
stats["total_entries"] = len(entries)
|
||||||
|
|
||||||
# Schema version and checksum status
|
# Schema version and database checksum status
|
||||||
stats["schema_version"] = data.get("schema_version")
|
stats["schema_version"] = data.get("schema_version")
|
||||||
json_content = json.dumps(data, indent=4)
|
json_content = json.dumps(data, indent=4)
|
||||||
current_checksum = hashlib.sha256(json_content.encode("utf-8")).hexdigest()
|
current_checksum = hashlib.sha256(json_content.encode("utf-8")).hexdigest()
|
||||||
@@ -2510,6 +2510,19 @@ class PasswordManager:
|
|||||||
stats["checksum_ok"] = False
|
stats["checksum_ok"] = False
|
||||||
stats["checksum"] = stored
|
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
|
# Relay info
|
||||||
cfg = self.config_manager.load_config(require_pin=False)
|
cfg = self.config_manager.load_config(require_pin=False)
|
||||||
relays = cfg.get("relays", [])
|
relays = cfg.get("relays", [])
|
||||||
@@ -2582,7 +2595,13 @@ class PasswordManager:
|
|||||||
print(colored(f"Schema version: {stats['schema_version']}", "cyan"))
|
print(colored(f"Schema version: {stats['schema_version']}", "cyan"))
|
||||||
print(
|
print(
|
||||||
colored(
|
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",
|
"cyan",
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
Reference in New Issue
Block a user