diff options
| author | Melvin Keskin <melvo@olomono.de> | 2022-04-19 20:05:16 +0200 |
|---|---|---|
| committer | Linus Jahn <lnj@kaidan.im> | 2022-05-06 13:36:43 +0200 |
| commit | 4c565dd7dd78340a393ccbf4bc3bed9f6ce360f2 (patch) | |
| tree | bc8f94f355a90b3c5b0380993ed13fd5d2e02032 /src/client/QXmppTrustManager.h | |
| parent | 2000431680f4ddf58f3fbe9ea138dd18bc9a1b8c (diff) | |
| download | qxmpp-4c565dd7dd78340a393ccbf4bc3bed9f6ce360f2.tar.gz | |
Add QXmppTrustManager as base of trust managers such as QXmppAtmManager
Diffstat (limited to 'src/client/QXmppTrustManager.h')
| -rw-r--r-- | src/client/QXmppTrustManager.h | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/src/client/QXmppTrustManager.h b/src/client/QXmppTrustManager.h new file mode 100644 index 00000000..9081af92 --- /dev/null +++ b/src/client/QXmppTrustManager.h @@ -0,0 +1,59 @@ +// SPDX-FileCopyrightText: 2022 Melvin Keskin <melvo@olomono.de> +// +// SPDX-License-Identifier: LGPL-2.1-or-later + +#ifndef QXMPPTRUSTMANAGER_H +#define QXMPPTRUSTMANAGER_H + +#include "QXmppClientExtension.h" +#include "QXmppTrustStorage.h" + +class QXMPP_EXPORT QXmppTrustManager : public QXmppClientExtension +{ + Q_OBJECT + +public: + QXmppTrustManager(QXmppTrustStorage *trustStorage); + ~QXmppTrustManager(); + + QFuture<void> setSecurityPolicy(const QString &encryption, QXmppTrustStorage::SecurityPolicy securityPolicy); + QFuture<void> resetSecurityPolicy(const QString &encryption); + QFuture<QXmppTrustStorage::SecurityPolicy> securityPolicy(const QString &encryption); + + QFuture<void> setOwnKey(const QString &encryption, const QByteArray &keyId); + QFuture<void> resetOwnKey(const QString &encryption); + QFuture<QByteArray> ownKey(const QString &encryption); + + QFuture<void> addKeys(const QString &encryption, const QString &keyOwnerJid, const QList<QByteArray> &keyIds, QXmppTrustStorage::TrustLevel trustLevel = QXmppTrustStorage::AutomaticallyDistrusted); + QFuture<void> removeKeys(const QString &encryption, const QList<QByteArray> &keyIds); + QFuture<void> removeKeys(const QString &encryption, const QString &keyOwnerJid); + QFuture<void> removeKeys(const QString &encryption); + QFuture<QHash<QXmppTrustStorage::TrustLevel, QMultiHash<QString, QByteArray>>> keys(const QString &encryption, QXmppTrustStorage::TrustLevels trustLevels = {}); + QFuture<QHash<QString, QHash<QByteArray, QXmppTrustStorage::TrustLevel>>> keys(const QString &encryption, const QList<QString> &keyOwnerJids, QXmppTrustStorage::TrustLevels trustLevels = {}); + QFuture<bool> hasKey(const QString &encryption, const QString &keyOwnerJid, QXmppTrustStorage::TrustLevels trustLevels); + + QFuture<void> setTrustLevel(const QString &encryption, const QMultiHash<QString, QByteArray> &keyIds, QXmppTrustStorage::TrustLevel trustLevel); + QFuture<void> setTrustLevel(const QString &encryption, const QList<QString> &keyOwnerJids, QXmppTrustStorage::TrustLevel oldTrustLevel, QXmppTrustStorage::TrustLevel newTrustLevel); + QFuture<QXmppTrustStorage::TrustLevel> trustLevel(const QString &encryption, const QString &keyOwnerJid, const QByteArray &keyId); + + QFuture<void> resetAll(const QString &encryption); + + /// \cond + bool handleStanza(const QDomElement &stanza) override; + /// \endcond + + Q_SIGNAL void trustLevelsChanged(const QHash<QString, QMultiHash<QString, QByteArray>> &modifiedKeys); + +protected: + /// \cond + inline QXmppTrustStorage *trustStorage() const + { + return m_trustStorage; + } + /// \endcond + +private: + QXmppTrustStorage *m_trustStorage; +}; + +#endif // QXMPPTRUSTMANAGER_H |
