From 526d31325a0a142e00dba45d7137001e332a89a7 Mon Sep 17 00:00:00 2001 From: thePR0M3TH3AN <53631862+PR0M3TH3AN@users.noreply.github.com> Date: Sun, 13 Jul 2025 10:55:51 -0400 Subject: [PATCH] Use canonical serializer for entry checksum --- src/password_manager/entry_management.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/password_manager/entry_management.py b/src/password_manager/entry_management.py index a9b90ae..0aaed6a 100644 --- a/src/password_manager/entry_management.py +++ b/src/password_manager/entry_management.py @@ -35,6 +35,7 @@ from password_manager.migrations import LATEST_VERSION from password_manager.entry_types import EntryType from password_manager.totp import TotpManager from utils.fingerprint import generate_fingerprint +from utils.checksum import canonical_json_dumps from password_manager.vault import Vault from password_manager.backup import BackupManager @@ -1162,11 +1163,8 @@ class EntryManager: """ try: data = self._load_index() - if USE_ORJSON: - json_bytes = json_lib.dumps(data) - else: - json_bytes = json_lib.dumps(data, separators=(",", ":")).encode("utf-8") - checksum = hashlib.sha256(json_bytes).hexdigest() + canonical = canonical_json_dumps(data) + checksum = hashlib.sha256(canonical.encode("utf-8")).hexdigest() # The checksum file path already includes the fingerprint directory checksum_path = self.checksum_file