From f0e0e1cd227c08ffd97aa42813a479b8c3ca6d23 Mon Sep 17 00:00:00 2001 From: Linus Jahn Date: Tue, 31 May 2022 12:22:48 +0200 Subject: Split up OMEMO into extra module --- src/client/QXmppOmemoManager.h | 157 ----------------------------------------- 1 file changed, 157 deletions(-) delete mode 100644 src/client/QXmppOmemoManager.h (limited to 'src/client/QXmppOmemoManager.h') diff --git a/src/client/QXmppOmemoManager.h b/src/client/QXmppOmemoManager.h deleted file mode 100644 index 91d57799..00000000 --- a/src/client/QXmppOmemoManager.h +++ /dev/null @@ -1,157 +0,0 @@ -// SPDX-FileCopyrightText: 2022 Melvin Keskin -// -// SPDX-License-Identifier: LGPL-2.1-or-later - -#ifndef QXMPPOMEMOMANAGER_H -#define QXMPPOMEMOMANAGER_H - -#include "QXmppClientExtension.h" -#include "QXmppE2eeExtension.h" -#include "QXmppMessageHandler.h" -#include "QXmppPubSubEventHandler.h" -#include "QXmppPubSubManager.h" -#include "QXmppTrustSecurityPolicy.h" - -class QXmppOmemoDevicePrivate; -class QXmppOmemoManagerPrivate; -class QXmppOmemoOwnDevicePrivate; -class QXmppOmemoStorage; - -class QXMPP_EXPORT QXmppOmemoOwnDevice -{ -public: - QXmppOmemoOwnDevice(); - QXmppOmemoOwnDevice(const QXmppOmemoOwnDevice &other); - QXmppOmemoOwnDevice(QXmppOmemoOwnDevice &&) noexcept; - ~QXmppOmemoOwnDevice(); - - QXmppOmemoOwnDevice &operator=(const QXmppOmemoOwnDevice &); - QXmppOmemoOwnDevice &operator=(QXmppOmemoOwnDevice &&); - - QString label() const; - void setLabel(const QString &label); - - QByteArray keyId() const; - void setKeyId(const QByteArray &keyId); - -private: - QSharedDataPointer d; -}; - -class QXMPP_EXPORT QXmppOmemoDevice -{ -public: - QXmppOmemoDevice(); - QXmppOmemoDevice(const QXmppOmemoDevice &other); - QXmppOmemoDevice(QXmppOmemoDevice &&) noexcept; - ~QXmppOmemoDevice(); - - QXmppOmemoDevice &operator=(const QXmppOmemoDevice &); - QXmppOmemoDevice &operator=(QXmppOmemoDevice &&); - - QString jid() const; - void setJid(const QString &jid); - - QString label() const; - void setLabel(const QString &label); - - QByteArray keyId() const; - void setKeyId(const QByteArray &keyId); - - QXmpp::TrustLevel trustLevel() const; - void setTrustLevel(QXmpp::TrustLevel trustLevel); - -private: - QSharedDataPointer d; -}; - -class QXMPP_EXPORT QXmppOmemoManager : public QXmppClientExtension, public QXmppE2eeExtension, public QXmppPubSubEventHandler, public QXmppMessageHandler -{ - Q_OBJECT - -public: - using Result = std::variant; - - struct DevicesResult - { - QString jid; - Result result; - }; - - explicit QXmppOmemoManager(QXmppOmemoStorage *omemoStorage); - ~QXmppOmemoManager() override; - - QFuture load(); - QFuture setUp(); - - QFuture ownKey(); - QFuture>> keys(QXmpp::TrustLevels trustLevels = {}); - QFuture>> keys(const QList &jids, QXmpp::TrustLevels trustLevels = {}); - - QFuture changeDeviceLabel(const QString &deviceLabel = {}); - - int maximumDevicesPerJid() const; - void setMaximumDevicesPerJid(int maximum); - - int maximumDevicesPerStanza() const; - void setMaximumDevicesPerStanza(int maximum); - - QFuture requestDeviceLists(const QList &jids); - QFuture subscribeToDeviceLists(const QList &jids); - QFuture unsubscribeFromDeviceLists(); - - QXmppOmemoOwnDevice ownDevice(); - QFuture> devices(); - QFuture> devices(const QList &jids); - QFuture removeContactDevices(const QString &jid); - - void setAcceptedSessionBuildingTrustLevels(QXmpp::TrustLevels trustLevels); - QXmpp::TrustLevels acceptedSessionBuildingTrustLevels(); - - void setNewDeviceAutoSessionBuildingEnabled(bool isNewDeviceAutoSessionBuildingEnabled); - bool isNewDeviceAutoSessionBuildingEnabled(); - - QFuture buildMissingSessions(const QList &jids); - - QFuture resetOwnDevice(); - QFuture resetAll(); - - QFuture setSecurityPolicy(QXmpp::TrustSecurityPolicy securityPolicy); - QFuture securityPolicy(); - - QFuture setTrustLevel(const QMultiHash &keyIds, QXmpp::TrustLevel trustLevel); - QFuture trustLevel(const QString &keyOwnerJid, const QByteArray &keyId); - - /// \cond - QFuture encryptMessage(QXmppMessage &&message, const std::optional ¶ms) override; - - QFuture encryptIq(QXmppIq &&iq, const std::optional ¶ms) override; - QFuture decryptIq(const QDomElement &element) override; - - QStringList discoveryFeatures() const override; - bool handleStanza(const QDomElement &stanza) override; - bool handleMessage(const QXmppMessage &message) override; - /// \endcond - - Q_SIGNAL void trustLevelsChanged(const QMultiHash &modifiedKeys); - - Q_SIGNAL void deviceAdded(const QString &jid, uint32_t deviceId); - Q_SIGNAL void deviceChanged(const QString &jid, uint32_t deviceId); - Q_SIGNAL void deviceRemoved(const QString &jid, uint32_t deviceId); - Q_SIGNAL void devicesRemoved(const QString &jid); - Q_SIGNAL void allDevicesRemoved(); - -protected: - /// \cond - void setClient(QXmppClient *client) override; - bool handlePubSubEvent(const QDomElement &element, const QString &pubSubService, const QString &nodeName) override; - /// \endcond - -private: - std::unique_ptr d; - - friend class QXmppOmemoManagerPrivate; - friend class tst_QXmppOmemoManager; -}; - -#endif // QXMPPOMEMOMANAGER_H -- cgit v1.2.3