// 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" template class QXmppTask; class QXmppTrustStorage; class QXMPP_EXPORT QXmppTrustManager : public QXmppClientExtension { Q_OBJECT public: QXmppTrustManager(QXmppTrustStorage *trustStorage); ~QXmppTrustManager(); QXmppTask setSecurityPolicy(const QString &encryption, QXmpp::TrustSecurityPolicy securityPolicy); QXmppTask resetSecurityPolicy(const QString &encryption); QXmppTask securityPolicy(const QString &encryption); QXmppTask setOwnKey(const QString &encryption, const QByteArray &keyId); QXmppTask resetOwnKey(const QString &encryption); QXmppTask ownKey(const QString &encryption); QXmppTask addKeys(const QString &encryption, const QString &keyOwnerJid, const QList &keyIds, QXmpp::TrustLevel trustLevel = QXmpp::TrustLevel::AutomaticallyDistrusted); QXmppTask removeKeys(const QString &encryption, const QList &keyIds); QXmppTask removeKeys(const QString &encryption, const QString &keyOwnerJid); QXmppTask removeKeys(const QString &encryption); QXmppTask>> keys(const QString &encryption, QXmpp::TrustLevels trustLevels = {}); QXmppTask>> keys(const QString &encryption, const QList &keyOwnerJids, QXmpp::TrustLevels trustLevels = {}); QXmppTask hasKey(const QString &encryption, const QString &keyOwnerJid, QXmpp::TrustLevels trustLevels); QXmppTask setTrustLevel(const QString &encryption, const QMultiHash &keyIds, QXmpp::TrustLevel trustLevel); QXmppTask setTrustLevel(const QString &encryption, const QList &keyOwnerJids, QXmpp::TrustLevel oldTrustLevel, QXmpp::TrustLevel newTrustLevel); QXmppTask trustLevel(const QString &encryption, const QString &keyOwnerJid, const QByteArray &keyId); QXmppTask 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