// 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" #include class QXMPP_EXPORT QXmppTrustStorage { public: virtual ~QXmppTrustStorage() = default; virtual QFuture setSecurityPolicy(const QString &encryption, QXmpp::TrustSecurityPolicy securityPolicy) = 0; virtual QFuture resetSecurityPolicy(const QString &encryption) = 0; virtual QFuture securityPolicy(const QString &encryption) = 0; virtual QFuture setOwnKey(const QString &encryption, const QByteArray &keyId) = 0; virtual QFuture resetOwnKey(const QString &encryption) = 0; virtual QFuture ownKey(const QString &encryption) = 0; virtual QFuture addKeys(const QString &encryption, const QString &keyOwnerJid, const QList &keyIds, QXmpp::TrustLevel trustLevel = QXmpp::TrustLevel::AutomaticallyDistrusted) = 0; virtual QFuture removeKeys(const QString &encryption, const QList &keyIds) = 0; virtual QFuture removeKeys(const QString &encryption, const QString &keyOwnerJid) = 0; virtual QFuture removeKeys(const QString &encryption) = 0; virtual QFuture>> keys(const QString &encryption, QXmpp::TrustLevels trustLevels = {}) = 0; virtual QFuture>> keys(const QString &encryption, const QList &keyOwnerJids, QXmpp::TrustLevels trustLevels = {}) = 0; virtual QFuture hasKey(const QString &encryption, const QString &keyOwnerJid, QXmpp::TrustLevels trustLevels) = 0; virtual QFuture>> setTrustLevel(const QString &encryption, const QMultiHash &keyIds, QXmpp::TrustLevel trustLevel) = 0; virtual QFuture>> setTrustLevel(const QString &encryption, const QList &keyOwnerJids, QXmpp::TrustLevel oldTrustLevel, QXmpp::TrustLevel newTrustLevel) = 0; virtual QFuture trustLevel(const QString &encryption, const QString &keyOwnerJid, const QByteArray &keyId) = 0; virtual QFuture resetAll(const QString &encryption) = 0; }; #endif // QXMPPTRUSTSTORAGE_H