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:
Diffstat (limited to 'src/sshagent/SSHAgent.h')
-rw-r--r--src/sshagent/SSHAgent.h36
1 files changed, 24 insertions, 12 deletions
diff --git a/src/sshagent/SSHAgent.h b/src/sshagent/SSHAgent.h
index 940d8c554..7deaf8e7f 100644
--- a/src/sshagent/SSHAgent.h
+++ b/src/sshagent/SSHAgent.h
@@ -32,20 +32,35 @@ class SSHAgent : public QObject
Q_OBJECT
public:
+ ~SSHAgent() override;
static SSHAgent* instance();
- static void init(QObject* parent);
+
+ bool isEnabled() const;
+ void setEnabled(bool enabled);
+ QString socketPath(bool allowOverride = true) const;
+ QString authSockOverride() const;
+ void setAuthSockOverride(QString& authSockOverride);
+#ifdef Q_OS_WIN
+ bool useOpenSSH() const;
+ void setUseOpenSSH(bool useOpenSSH);
+#endif
const QString errorString() const;
bool isAgentRunning() const;
- bool addIdentity(OpenSSHKey& key, KeeAgentSettings& settings);
+ bool addIdentity(OpenSSHKey& key, const KeeAgentSettings& settings, const QUuid& databaseUuid);
+ bool listIdentities(QList<QSharedPointer<OpenSSHKey>>& list);
+ bool checkIdentity(const OpenSSHKey& key, bool& loaded);
bool removeIdentity(OpenSSHKey& key);
+ void removeAllIdentities();
void setAutoRemoveOnLock(const OpenSSHKey& key, bool autoRemove);
signals:
void error(const QString& message);
+ void enabledChanged(bool enabled);
public slots:
- void databaseModeChanged();
+ void databaseLocked();
+ void databaseUnlocked();
private:
const quint8 SSH_AGENT_FAILURE = 5;
@@ -59,24 +74,21 @@ private:
const quint8 SSH_AGENT_CONSTRAIN_LIFETIME = 1;
const quint8 SSH_AGENT_CONSTRAIN_CONFIRM = 2;
- explicit SSHAgent(QObject* parent = nullptr);
- ~SSHAgent();
-
bool sendMessage(const QByteArray& in, QByteArray& out);
#ifdef Q_OS_WIN
bool sendMessagePageant(const QByteArray& in, QByteArray& out);
-#endif
- static SSHAgent* m_instance;
-
- QString m_socketPath;
-#ifdef Q_OS_WIN
const quint32 AGENT_MAX_MSGLEN = 8192;
const quint32 AGENT_COPYDATA_ID = 0x804e50ba;
#endif
- QHash<OpenSSHKey, bool> m_addedKeys;
+ QHash<OpenSSHKey, QPair<QUuid, bool>> m_addedKeys;
QString m_error;
};
+static inline SSHAgent* sshAgent()
+{
+ return SSHAgent::instance();
+}
+
#endif // KEEPASSXC_SSHAGENT_H