aboutsummaryrefslogtreecommitdiff
path: root/src/client/QXmppTrustMemoryStorage.h
diff options
context:
space:
mode:
authorMelvin Keskin <melvo@olomono.de>2021-08-28 14:38:20 +0200
committerLinus Jahn <lnj@kaidan.im>2021-09-16 18:43:00 +0200
commitb147ea5f4004cbd9aa2e7ae3936734a869bf3a44 (patch)
tree7ca6b71247086985d283f2668f9bb96cacb5ea32 /src/client/QXmppTrustMemoryStorage.h
parent2a836ec1fb8329018d23ca3adb5ad388100bd13e (diff)
downloadqxmpp-b147ea5f4004cbd9aa2e7ae3936734a869bf3a44.tar.gz
Add QXmppTrustMemoryStorage
Diffstat (limited to 'src/client/QXmppTrustMemoryStorage.h')
-rw-r--r--src/client/QXmppTrustMemoryStorage.h63
1 files changed, 63 insertions, 0 deletions
diff --git a/src/client/QXmppTrustMemoryStorage.h b/src/client/QXmppTrustMemoryStorage.h
new file mode 100644
index 00000000..6c1eb668
--- /dev/null
+++ b/src/client/QXmppTrustMemoryStorage.h
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2008-2021 The QXmpp developers
+ *
+ * Author:
+ * Melvin Keskin <melvo@olomono.de>
+ *
+ * Source:
+ * https://github.com/qxmpp-project/qxmpp
+ *
+ * This file is a part of QXmpp library.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ */
+
+#ifndef QXMPPTRUSTMEMORYSTORAGE_H
+#define QXMPPTRUSTMEMORYSTORAGE_H
+
+#include "QXmppGlobal.h"
+#include "QXmppTrustStorage.h"
+
+#include <memory>
+
+class QXmppTrustMemoryStoragePrivate;
+
+class QXMPP_EXPORT QXmppTrustMemoryStorage : public QXmppTrustStorage
+{
+public:
+ QXmppTrustMemoryStorage();
+ ~QXmppTrustMemoryStorage();
+
+ /// \cond
+ QFuture<void> addOwnKey(const QString &encryption, const QString &keyId) override;
+ QFuture<void> removeOwnKey(const QString &encryption) override;
+ QFuture<QString> ownKey(const QString &encryption) const override;
+
+ QFuture<void> addKeys(const QString &encryption, const QString &keyOwnerJid, const QList<QString> &keyIds, TrustLevel trustLevel = TrustLevel::AutomaticallyDistrusted) override;
+ QFuture<void> removeKeys(const QString &encryption = {}, const QList<QString> &keyIds = {}) override;
+ QFuture<QHash<TrustLevel, QMultiHash<QString, QString>>> keys(const QString &encryption, TrustLevels trustLevels = {}) const override;
+
+ QFuture<void> setTrustLevel(const QString &encryption, const QMultiHash<QString, QString> &keyIds, const TrustLevel trustLevel) override;
+ QFuture<void> setTrustLevel(const QString &encryption, const QList<QString> &keyOwnerJids, const TrustLevel oldTrustLevel, const TrustLevel newTrustLevel) override;
+ QFuture<TrustLevel> trustLevel(const QString &encryption, const QString &keyId) const override;
+
+ QFuture<void> addKeysForPostponedTrustDecisions(const QString &encryption, const QString &senderKeyId, const QList<QXmppTrustMessageKeyOwner> &keyOwners) override;
+ QFuture<void> removeKeysForPostponedTrustDecisions(const QString &encryption, const QList<QString> &keyIdsForAuthentication, const QList<QString> &keyIdsForDistrusting) override;
+ QFuture<void> removeKeysForPostponedTrustDecisions(const QString &encryption = {}, const QList<QString> &senderKeyIds = {}) override;
+ QFuture<QHash<bool, QMultiHash<QString, QString>>> keysForPostponedTrustDecisions(const QString &encryption, const QList<QString> &senderKeyIds = {}) override;
+ /// \endcond
+
+private:
+ std::unique_ptr<QXmppTrustMemoryStoragePrivate> d;
+};
+
+#endif // QXMPPTRUSTMEMORYSTORAGE_H