diff options
author | Felix Geyer <debfx@fobos.de> | 2011-12-22 02:22:07 +0400 |
---|---|---|
committer | Felix Geyer <debfx@fobos.de> | 2011-12-22 02:22:07 +0400 |
commit | f215ffa3fa540074ef5c3fe956f3223f266bb3ba (patch) | |
tree | b2265b65970bb953b77edc6c0f9f9079996092f2 /src/keys/FileKey.h | |
parent | cd919949fd8a66eb9455146b85c73121d75a59dc (diff) |
Implement support for key files.
Closes #5.
Diffstat (limited to 'src/keys/FileKey.h')
-rw-r--r-- | src/keys/FileKey.h | 50 |
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 |