// SPDX-FileCopyrightText: 2021 Melvin Keskin // // SPDX-License-Identifier: LGPL-2.1-or-later #ifndef QXMPPTRUSTSTORAGE_H #define QXMPPTRUSTSTORAGE_H #include "QXmppGlobal.h" #include "QXmppTrustLevel.h" #include "QXmppTrustSecurityPolicy.h" template class QXmppTask; class QXMPP_EXPORT QXmppTrustStorage { public: virtual ~QXmppTrustStorage() = default; virtual QXmppTask setSecurityPolicy(const QString &encryption, QXmpp::TrustSecurityPolicy securityPolicy) = 0; virtual QXmppTask resetSecurityPolicy(const QString &encryption) = 0; virtual QXmppTask securityPolicy(const QString &encryption) = 0; virtual QXmppTask setOwnKey(const QString &encryption, const QByteArray &keyId) = 0; virtual QXmppTask resetOwnKey(const QString &encryption) = 0; virtual QXmppTask ownKey(const QString &encryption) = 0; virtual QXmppTask addKeys(const QString &encryption, const QString &keyOwnerJid, const QList &keyIds, QXmpp::TrustLevel trustLevel = QXmpp::TrustLevel::AutomaticallyDistrusted) = 0; virtual QXmppTask removeKeys(const QString &encryption, const QList &keyIds) = 0; virtual QXmppTask removeKeys(const QString &encryption, const QString &keyOwnerJid) = 0; virtual QXmppTask removeKeys(const QString &encryption) = 0; virtual QXmppTask>> keys(const QString &encryption, QXmpp::TrustLevels trustLevels = {}) = 0; virtual QXmppTask>> keys(const QString &encryption, const QList &keyOwnerJids, QXmpp::TrustLevels trustLevels = {}) = 0; virtual QXmppTask hasKey(const QString &encryption, const QString &keyOwnerJid, QXmpp::TrustLevels trustLevels) = 0; virtual QXmppTask>> setTrustLevel(const QString &encryption, const QMultiHash &keyIds, QXmpp::TrustLevel trustLevel) = 0; virtual QXmppTask>> setTrustLevel(const QString &encryption, const QList &keyOwnerJids, QXmpp::TrustLevel oldTrustLevel, QXmpp::TrustLevel newTrustLevel) = 0; virtual QXmppTask trustLevel(const QString &encryption, const QString &keyOwnerJid, const QByteArray &keyId) = 0; virtual QXmppTask resetAll(const QString &encryption) = 0; }; #endif // QXMPPTRUSTSTORAGE_H