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:
Diffstat (limited to 'src/format/KeePass2Writer.cpp')
-rw-r--r--src/format/KeePass2Writer.cpp17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/format/KeePass2Writer.cpp b/src/format/KeePass2Writer.cpp
index 0bd247280..494341f5e 100644
--- a/src/format/KeePass2Writer.cpp
+++ b/src/format/KeePass2Writer.cpp
@@ -84,7 +84,6 @@ bool KeePass2Writer::implicitUpgradeNeeded(Database const* db) const
* @param db source database
* @return true on success
*/
-
bool KeePass2Writer::writeDatabase(QIODevice* device, Database* db)
{
m_error = false;
@@ -109,6 +108,22 @@ bool KeePass2Writer::writeDatabase(QIODevice* device, Database* db)
return m_writer->writeDatabase(device, db);
}
+void KeePass2Writer::extractDatabase(Database* db, QByteArray& xmlOutput)
+{
+ m_error = false;
+ m_errorStr.clear();
+
+ if (db->kdf()->uuid() == KeePass2::KDF_AES_KDBX3) {
+ m_version = KeePass2::FILE_VERSION_3_1;
+ m_writer.reset(new Kdbx3Writer());
+ } else {
+ m_version = KeePass2::FILE_VERSION_4;
+ m_writer.reset(new Kdbx4Writer());
+ }
+
+ m_writer->extractDatabase(xmlOutput, db);
+}
+
bool KeePass2Writer::hasError() const
{
return m_error || (m_writer && m_writer->hasError());