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
path: root/utils
diff options
context:
space:
mode:
authorLouis-Bertrand Varin <louisv@unito.io>2017-01-31 03:18:35 +0300
committerLouis-Bertrand Varin <louisbvarin@gmail.com>2017-03-16 17:09:50 +0300
commit52991f3d66eb5e7d7a5098dfe3b9bb7106466f52 (patch)
tree673f3455f9fdf957bf55ad6e3fa4448b912c9dac /utils
parent37441e3fac8f8356d5379995348aa0f0b6eb1cb9 (diff)
Add first keepassxc-cli version.
Diffstat (limited to 'utils')
-rw-r--r--utils/CMakeLists.txt36
-rw-r--r--utils/kdbx-extract.cpp90
-rw-r--r--utils/kdbx-merge.cpp138
3 files changed, 0 insertions, 264 deletions
diff --git a/utils/CMakeLists.txt b/utils/CMakeLists.txt
deleted file mode 100644
index 83f00b4bc..000000000
--- a/utils/CMakeLists.txt
+++ /dev/null
@@ -1,36 +0,0 @@
-# Copyright (C) 2010 Felix Geyer <debfx@fobos.de>
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 2 or (at your option)
-# version 3 of the License.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-include_directories(../src)
-
-add_executable(kdbx-extract kdbx-extract.cpp)
-target_link_libraries(kdbx-extract
- keepassx_core
- Qt5::Core
- ${GCRYPT_LIBRARIES}
- ${GPGERROR_LIBRARIES}
- ${ZLIB_LIBRARIES})
-
-add_executable(kdbx-merge kdbx-merge.cpp)
-target_link_libraries(kdbx-merge
- keepassx_core
- Qt5::Core
- ${GCRYPT_LIBRARIES}
- ${GPGERROR_LIBRARIES}
- ${ZLIB_LIBRARIES})
-
-
-add_executable(entropy-meter entropy-meter.cpp)
-target_link_libraries(entropy-meter zxcvbn)
diff --git a/utils/kdbx-extract.cpp b/utils/kdbx-extract.cpp
deleted file mode 100644
index 255f5d003..000000000
--- a/utils/kdbx-extract.cpp
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Copyright (C) 2010 Felix Geyer <debfx@fobos.de>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 or (at your option)
- * version 3 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <stdio.h>
-
-#include <QCommandLineParser>
-#include <QCoreApplication>
-#include <QFile>
-#include <QStringList>
-#include <QTextStream>
-
-#include "core/Database.h"
-#include "crypto/Crypto.h"
-#include "format/KeePass2Reader.h"
-#include "keys/CompositeKey.h"
-#include "keys/FileKey.h"
-#include "keys/PasswordKey.h"
-
-int main(int argc, char **argv)
-{
- QCoreApplication app(argc, argv);
-
- QCommandLineParser parser;
- parser.setApplicationDescription(QCoreApplication::translate("main",
- "Extract and print a KeePassXC database file."));
- parser.addPositionalArgument("database", QCoreApplication::translate("main", "path of the database to extract."));
- parser.addHelpOption();
- parser.process(app);
-
- const QStringList args = parser.positionalArguments();
- if (args.size() != 1) {
- parser.showHelp();
- return 1;
- }
-
- if (!Crypto::init()) {
- qFatal("Fatal error while testing the cryptographic functions:\n%s", qPrintable(Crypto::errorString()));
- }
-
- static QTextStream inputTextStream(stdin, QIODevice::ReadOnly);
- QString line = inputTextStream.readLine();
- CompositeKey key = CompositeKey::readFromLine(line);
-
- QString databaseFilename = args.at(0);
- QFile dbFile(databaseFilename);
- if (!dbFile.exists()) {
- qCritical("File %s does not exist.", qPrintable(databaseFilename));
- return 1;
- }
- if (!dbFile.open(QIODevice::ReadOnly)) {
- qCritical("Unable to open file %s.", qPrintable(databaseFilename));
- return 1;
- }
-
- KeePass2Reader reader;
- reader.setSaveXml(true);
- Database* db = reader.readDatabase(&dbFile, key);
- delete db;
-
- QByteArray xmlData = reader.xmlData();
-
- if (reader.hasError()) {
- if (xmlData.isEmpty()) {
- qCritical("Error while reading the database:\n%s", qPrintable(reader.errorString()));
- return 1;
- }
- else {
- qWarning("Error while parsing the database:\n%s\n", qPrintable(reader.errorString()));
- }
- }
-
- QTextStream out(stdout);
- out << xmlData.constData() << "\n";
-
- return 0;
-}
diff --git a/utils/kdbx-merge.cpp b/utils/kdbx-merge.cpp
deleted file mode 100644
index da780ea1b..000000000
--- a/utils/kdbx-merge.cpp
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- * Copyright (C) 2010 Felix Geyer <debfx@fobos.de>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 or (at your option)
- * version 3 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <stdio.h>
-
-#include <QCommandLineParser>
-#include <QCoreApplication>
-#include <QFile>
-#include <QSaveFile>
-#include <QStringList>
-#include <QTextStream>
-
-#include "core/Database.h"
-#include "crypto/Crypto.h"
-#include "format/KeePass2Reader.h"
-#include "format/KeePass2Writer.h"
-#include "keys/CompositeKey.h"
-
-int main(int argc, char **argv)
-{
-
- QCoreApplication app(argc, argv);
-
- QCommandLineParser parser;
- parser.setApplicationDescription(QCoreApplication::translate("main", "Merge 2 KeePassXC database files."));
- parser.addPositionalArgument("database1", QCoreApplication::translate("main", "path of the database to merge into."));
- parser.addPositionalArgument("database2", QCoreApplication::translate("main", "path of the database to merge from."));
-
- QCommandLineOption samePasswordOption(QStringList() << "s" << "same-password",
- QCoreApplication::translate("main", "use the same password for both database files."));
-
- parser.addHelpOption();
- parser.addOption(samePasswordOption);
- parser.process(app);
-
- const QStringList args = parser.positionalArguments();
- if (args.size() != 2) {
- parser.showHelp();
- return 1;
- }
-
- if (!Crypto::init()) {
- qFatal("Fatal error while testing the cryptographic functions:\n%s", qPrintable(Crypto::errorString()));
- }
-
- static QTextStream inputTextStream(stdin, QIODevice::ReadOnly);
-
- QString line1 = inputTextStream.readLine();
- CompositeKey key1 = CompositeKey::readFromLine(line1);
-
- CompositeKey key2;
- if (parser.isSet("same-password")) {
- key2 = *key1.clone();
- }
- else {
- QString line2 = inputTextStream.readLine();
- key2 = CompositeKey::readFromLine(line2);
- }
-
-
- QString databaseFilename1 = args.at(0);
- QFile dbFile1(databaseFilename1);
- if (!dbFile1.exists()) {
- qCritical("File %s does not exist.", qPrintable(databaseFilename1));
- return 1;
- }
- if (!dbFile1.open(QIODevice::ReadOnly)) {
- qCritical("Unable to open file %s.", qPrintable(databaseFilename1));
- return 1;
- }
-
- KeePass2Reader reader1;
- Database* db1 = reader1.readDatabase(&dbFile1, key1);
-
- if (reader1.hasError()) {
- qCritical("Error while parsing the database:\n%s\n", qPrintable(reader1.errorString()));
- return 1;
- }
-
-
- QString databaseFilename2 = args.at(1);
- QFile dbFile2(databaseFilename2);
- if (!dbFile2.exists()) {
- qCritical("File %s does not exist.", qPrintable(databaseFilename2));
- return 1;
- }
- if (!dbFile2.open(QIODevice::ReadOnly)) {
- qCritical("Unable to open file %s.", qPrintable(databaseFilename2));
- return 1;
- }
-
- KeePass2Reader reader2;
- Database* db2 = reader2.readDatabase(&dbFile2, key2);
-
- if (reader2.hasError()) {
- qCritical("Error while parsing the database:\n%s\n", qPrintable(reader2.errorString()));
- return 1;
- }
-
- db1->merge(db2);
-
- QSaveFile saveFile(databaseFilename1);
- if (!saveFile.open(QIODevice::WriteOnly)) {
- qCritical("Unable to open file %s for writing.", qPrintable(databaseFilename1));
- return 1;
- }
-
- KeePass2Writer writer;
- writer.writeDatabase(&saveFile, db1);
-
- if (writer.hasError()) {
- qCritical("Error while updating the database:\n%s\n", qPrintable(writer.errorString()));
- return 1;
- }
-
- if (!saveFile.commit()) {
- qCritical("Error while updating the database:\n%s\n", qPrintable(writer.errorString()));
- return 0;
- }
-
- qDebug("Successfully merged the database files.\n");
- return 1;
-
-}