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:
authorFelix Geyer <debfx@fobos.de>2011-12-22 02:22:07 +0400
committerFelix Geyer <debfx@fobos.de>2011-12-22 02:22:07 +0400
commitf215ffa3fa540074ef5c3fe956f3223f266bb3ba (patch)
treeb2265b65970bb953b77edc6c0f9f9079996092f2 /src/keys/FileKey.h
parentcd919949fd8a66eb9455146b85c73121d75a59dc (diff)
Implement support for key files.
Closes #5.
Diffstat (limited to 'src/keys/FileKey.h')
-rw-r--r--src/keys/FileKey.h50
1 files changed, 50 insertions, 0 deletions
diff --git a/src/keys/FileKey.h b/src/keys/FileKey.h
new file mode 100644
index 000000000..cc2c87255
--- /dev/null
+++ b/src/keys/FileKey.h
@@ -0,0 +1,50 @@
+/*
+* Copyright (C) 2011 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/>.
+*/
+
+#ifndef KEEPASSX_FILEKEY_H
+#define KEEPASSX_FILEKEY_H
+
+#include <QtCore/QXmlStreamReader>
+
+#include "keys/Key.h"
+
+class QIODevice;
+
+class FileKey : public Key
+{
+public:
+ FileKey();
+ bool load(QIODevice* device);
+ bool load(const QString& fileName, QString* errorMsg = 0);
+ QByteArray rawKey() const;
+ FileKey* clone() const;
+ static void create(QIODevice* device);
+ static bool create(const QString& fileName, QString* errorMsg = 0);
+
+private:
+ bool loadXml(QIODevice* device);
+ bool loadXmlMeta(QXmlStreamReader& xmlReader);
+ QByteArray loadXmlKey(QXmlStreamReader& xmlReader);
+ bool loadBinary(QIODevice* device);
+ bool loadHex(QIODevice* device);
+ bool loadHashed(QIODevice* device);
+ static bool isHex(const QByteArray& ba);
+
+ QByteArray m_key;
+};
+
+#endif // KEEPASSX_FILEKEY_H