Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/keepassxreboot/keepassxc.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKyle Manna <kyle@kylemanna.com>2014-05-26 11:29:41 +0400
committerKyle Manna <kyle@kylemanna.com>2017-01-08 10:18:55 +0300
commitadd4846d799315d4149b96ca09c65db0dd7675eb (patch)
tree71f92eb2f4f1c4176152e3ae1a07b42c555d3fc3 /src/format
parente354a0ee0eb01bedf18931fb0f65bdfb50f0d66f (diff)
format: Add challenge response result to final key hash
* The challengeMasterSeed() function return empty if not present maintaining backwards compatability. * This commit is where the challenge response result is computed into the final key used to encrypt or decrypt the database. Signed-off-by: Kyle Manna <kyle@kylemanna.com>
Diffstat (limited to 'src/format')
-rw-r--r--src/format/KeePass2Reader.cpp1
-rw-r--r--src/format/KeePass2Writer.cpp1
2 files changed, 2 insertions, 0 deletions
diff --git a/src/format/KeePass2Reader.cpp b/src/format/KeePass2Reader.cpp
index b45cefa6c..17e007d76 100644
--- a/src/format/KeePass2Reader.cpp
+++ b/src/format/KeePass2Reader.cpp
@@ -115,6 +115,7 @@ Database* KeePass2Reader::readDatabase(QIODevice* device, const CompositeKey& ke
CryptoHash hash(CryptoHash::Sha256);
hash.addData(m_masterSeed);
+ hash.addData(m_db->challengeMasterSeed(m_masterSeed));
hash.addData(m_db->transformedMasterKey());
QByteArray finalKey = hash.result();
diff --git a/src/format/KeePass2Writer.cpp b/src/format/KeePass2Writer.cpp
index dfbbf3532..3a3195a0b 100644
--- a/src/format/KeePass2Writer.cpp
+++ b/src/format/KeePass2Writer.cpp
@@ -53,6 +53,7 @@ void KeePass2Writer::writeDatabase(QIODevice* device, Database* db)
CryptoHash hash(CryptoHash::Sha256);
hash.addData(masterSeed);
+ hash.addData(db->challengeMasterSeed(masterSeed));
Q_ASSERT(!db->transformedMasterKey().isEmpty());
hash.addData(db->transformedMasterKey());
QByteArray finalKey = hash.result();