From 6df54cfe8d15891beddf70b0ca8e246103d6d8f9 Mon Sep 17 00:00:00 2001 From: Janek Bevendorff Date: Thu, 11 Jan 2018 00:20:37 +0100 Subject: [PATCH] Do not assert KDF UUID and improve error message --- src/format/Kdbx4Reader.cpp | 2 +- src/format/KeePass2.cpp | 3 +-- src/format/KeePass2.h | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/format/Kdbx4Reader.cpp b/src/format/Kdbx4Reader.cpp index b0545888f..38063acf1 100644 --- a/src/format/Kdbx4Reader.cpp +++ b/src/format/Kdbx4Reader.cpp @@ -203,7 +203,7 @@ bool Kdbx4Reader::readHeaderField(StoreDataStream& device) QVariantMap kdfParams = readVariantMap(&bufIoDevice); QSharedPointer kdf = KeePass2::kdfFromParameters(kdfParams); if (!kdf) { - raiseError(tr("Invalid KDF parameters")); + raiseError(tr("Unsupported key derivation function (KDF) or invalid parameters")); return false; } m_db->setKdf(kdf); diff --git a/src/format/KeePass2.cpp b/src/format/KeePass2.cpp index 9f0832fb0..d58e8bbfd 100644 --- a/src/format/KeePass2.cpp +++ b/src/format/KeePass2.cpp @@ -70,7 +70,7 @@ QByteArray KeePass2::hmacKey(QByteArray masterSeed, QByteArray transformedMaster * @param p variant map containing parameters * @return initialized KDF */ -QSharedPointer KeePass2::kdfFromParameters(const QVariantMap &p) +QSharedPointer KeePass2::kdfFromParameters(const QVariantMap& p) { QByteArray uuidBytes = p.value(KDFPARAM_UUID).toByteArray(); if (uuidBytes.size() != Uuid::Length) { @@ -111,7 +111,6 @@ QSharedPointer KeePass2::uuidToKdf(const Uuid& uuid) return QSharedPointer::create(); } - Q_ASSERT_X(false, "uuidToKdf", "Invalid UUID"); return {}; } diff --git a/src/format/KeePass2.h b/src/format/KeePass2.h index cd53d7132..c376ecdf2 100644 --- a/src/format/KeePass2.h +++ b/src/format/KeePass2.h @@ -122,7 +122,7 @@ namespace KeePass2 }; QByteArray hmacKey(QByteArray masterSeed, QByteArray transformedMasterKey); - QSharedPointer kdfFromParameters(const QVariantMap &p); + QSharedPointer kdfFromParameters(const QVariantMap& p); QVariantMap kdfToParameters(QSharedPointer kdf); QSharedPointer uuidToKdf(const Uuid& uuid); Uuid kdfToUuid(QSharedPointer kdf);