diff options
author | Kyle Manna <kyle@kylemanna.com> | 2014-05-26 11:29:41 +0400 |
---|---|---|
committer | Kyle Manna <kyle@kylemanna.com> | 2017-01-08 10:18:55 +0300 |
commit | add4846d799315d4149b96ca09c65db0dd7675eb (patch) | |
tree | 71f92eb2f4f1c4176152e3ae1a07b42c555d3fc3 /src/format | |
parent | e354a0ee0eb01bedf18931fb0f65bdfb50f0d66f (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.cpp | 1 | ||||
-rw-r--r-- | src/format/KeePass2Writer.cpp | 1 |
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(); |