From 67603ab42e132fb15b8bde3c450d42276ae95e03 Mon Sep 17 00:00:00 2001 From: Janek Bevendorff Date: Sat, 13 Nov 2021 20:17:21 +0100 Subject: [PATCH] Retain number of rounds when auto-upgrading KDBX version --- src/format/KeePass2Writer.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/format/KeePass2Writer.cpp b/src/format/KeePass2Writer.cpp index 787673bd4..86480e74c 100644 --- a/src/format/KeePass2Writer.cpp +++ b/src/format/KeePass2Writer.cpp @@ -110,7 +110,9 @@ bool KeePass2Writer::writeDatabase(QIODevice* device, Database* db) if (upgradeNeeded) { // We MUST re-transform the key, because challenge-response hashing has changed in KDBX 4. // If we forget to re-transform, the database will be saved WITHOUT a challenge-response key component! - db->changeKdf(KeePass2::uuidToKdf(KeePass2::KDF_AES_KDBX4)); + auto kdf = KeePass2::uuidToKdf(KeePass2::KDF_AES_KDBX4); + kdf->setRounds(db->kdf()->rounds()); + db->changeKdf(kdf); } if (db->kdf()->uuid() == KeePass2::KDF_AES_KDBX3) {