diff options
author | Felix Geyer <debfx@fobos.de> | 2012-01-06 23:05:46 +0400 |
---|---|---|
committer | Felix Geyer <debfx@fobos.de> | 2012-01-06 23:05:46 +0400 |
commit | 2f5d11014949798a96fbcce4bf2306afc1ccbf8a (patch) | |
tree | 95b8bfb5b0d1775cb0bf7d38a80f75b29b42ff9e /utils | |
parent | 007a901dbae08d8a196d2eff38f15856db27da29 (diff) |
Support key files in kdbx-extract.
Diffstat (limited to 'utils')
-rw-r--r-- | utils/kdbx-extract.cpp | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/utils/kdbx-extract.cpp b/utils/kdbx-extract.cpp index 0e3be6920..762ec83d8 100644 --- a/utils/kdbx-extract.cpp +++ b/utils/kdbx-extract.cpp @@ -25,6 +25,7 @@ #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) @@ -32,16 +33,23 @@ int main(int argc, char **argv) QCoreApplication app(argc, argv); if (app.arguments().size() != 3) { - qCritical("Usage: kdbx-extract <password> <kdbx file>"); + qCritical("Usage: kdbx-extract <password/key file> <kdbx file>"); return 1; } Crypto::init(); CompositeKey key; - PasswordKey password; - password.setPassword(app.arguments().at(1)); - key.addKey(password); + if (QFile::exists(app.arguments().at(1))) { + FileKey fileKey; + fileKey.load(app.arguments().at(1)); + key.addKey(fileKey); + } + else { + PasswordKey password; + password.setPassword(app.arguments().at(1)); + key.addKey(password); + } QFile dbFile(app.arguments().at(2)); if (!dbFile.exists()) { |