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:
authorJonathan White <support@dmapps.us>2020-04-06 15:42:20 +0300
committerJonathan White <support@dmapps.us>2020-05-15 03:19:56 +0300
commit51429810189cf17501b925712920f9340ec4f4d1 (patch)
tree7ff60339527e885a1924cc525ceb4007f6596f22 /src/keys/CompositeKey.h
parenta145bf91191f0a4630a7e31654aff8a8dfd09bf0 (diff)
Significantly enhance hardware key robustness
* Significantly improve user experience when using hardware keys on databases in both GUI and CLI modes. Prevent locking up the YubiKey USB interface for prolonged periods of time. Allows for other apps to use the key concurrently with KeePassXC. * Improve messages displayed to user when finding keys and when user interaction is required. Output specific error messages when handling hardware keys during database read/write. * Only poll for keys when previously used or upon user request. Prevent continuously polling keys when accessing the UI such as switching tabs and minimize/maximize. * Add support for using multiple hardware keys simultaneously. Keys are identified by their serial number which prevents using the wrong key during open and save operations. * Fixes #4400 * Fixes #4065 * Fixes #1050 * Fixes #1215 * Fixes #3087 * Fixes #1088 * Fixes #1869
Diffstat (limited to 'src/keys/CompositeKey.h')
-rw-r--r--src/keys/CompositeKey.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/keys/CompositeKey.h b/src/keys/CompositeKey.h
index c0c77f2f4..865864d16 100644
--- a/src/keys/CompositeKey.h
+++ b/src/keys/CompositeKey.h
@@ -38,9 +38,9 @@ public:
bool isEmpty() const;
QByteArray rawKey() const override;
- QByteArray rawKey(const QByteArray* transformSeed, bool* ok = nullptr) const;
- Q_REQUIRED_RESULT bool transform(const Kdf& kdf, QByteArray& result) const;
- bool challenge(const QByteArray& seed, QByteArray& result) const;
+
+ Q_REQUIRED_RESULT bool transform(const Kdf& kdf, QByteArray& result, QString* error = nullptr) const;
+ bool challenge(const QByteArray& seed, QByteArray& result, QString* error = nullptr) const;
void addKey(const QSharedPointer<Key>& key);
const QList<QSharedPointer<Key>>& keys() const;
@@ -49,6 +49,8 @@ public:
const QList<QSharedPointer<ChallengeResponseKey>>& challengeResponseKeys() const;
private:
+ QByteArray rawKey(const QByteArray* transformSeed, bool* ok = nullptr, QString* error = nullptr) const;
+
QList<QSharedPointer<Key>> m_keys;
QList<QSharedPointer<ChallengeResponseKey>> m_challengeResponseKeys;
};