// SPDX-FileCopyrightText: 2022 Melvin Keskin // // SPDX-License-Identifier: LGPL-2.1-or-later #ifndef QXMPPTRUSTMANAGER_H #define QXMPPTRUSTMANAGER_H #include "QXmppClientExtension.h" #include "QXmppTrustLevel.h" #include "QXmppTrustSecurityPolicy.h" #include class QXmppTrustStorage; class QXMPP_EXPORT QXmppTrustManager : public QXmppClientExtension { Q_OBJECT public: QXmppTrustManager(QXmppTrustStorage *trustStorage); ~QXmppTrustManager(); QFuture setSecurityPolicy(const QString &encryption, QXmpp::TrustSecurityPolicy securityPolicy); QFuture resetSecurityPolicy(const QString &encryption); QFuture securityPolicy(const QString &encryption); QFuture setOwnKey(const QString &encryption, const QByteArray &keyId); QFuture resetOwnKey(const QString &encryption); QFuture ownKey(const QString &encryption); QFuture addKeys(const QString &encryption, const QString &keyOwnerJid, const QList &keyIds, QXmpp::TrustLevel trustLevel = QXmpp::TrustLevel::AutomaticallyDistrusted); QFuture removeKeys(const QString &encryption, const QList &keyIds); QFuture removeKeys(const QString &encryption, const QString &keyOwnerJid); QFuture removeKeys(const QString &encryption); QFuture>> keys(const QString &encryption, QXmpp::TrustLevels trustLevels = {}); QFuture>> keys(const QString &encryption, const QList &keyOwnerJids, QXmpp::TrustLevels trustLevels = {}); QFuture hasKey(const QString &encryption, const QString &keyOwnerJid, QXmpp::TrustLevels trustLevels); QFuture setTrustLevel(const QString &encryption, const QMultiHash &keyIds, QXmpp::TrustLevel trustLevel); QFuture setTrustLevel(const QString &encryption, const QList &keyOwnerJids, QXmpp::TrustLevel oldTrustLevel, QXmpp::TrustLevel newTrustLevel); QFuture trustLevel(const QString &encryption, const QString &keyOwnerJid, const QByteArray &keyId); QFuture resetAll(const QString &encryption); Q_SIGNAL void trustLevelsChanged(const QHash> &modifiedKeys); protected: /// \cond inline QXmppTrustStorage *trustStorage() const { return m_trustStorage; } /// \endcond private: QXmppTrustStorage *m_trustStorage; }; #endif // QXMPPTRUSTMANAGER_H