diff options
| author | Linus Jahn <lnj@kaidan.im> | 2022-05-31 12:22:48 +0200 |
|---|---|---|
| committer | Linus Jahn <lnj@kaidan.im> | 2022-08-13 15:55:03 +0200 |
| commit | f0e0e1cd227c08ffd97aa42813a479b8c3ca6d23 (patch) | |
| tree | 12ca6aefdef9195ee8937406db86e73cf1a5f820 /src/client/QXmppOmemoManager.h | |
| parent | 87df8a8dda385558d39639ce09e2717974264ab6 (diff) | |
| download | qxmpp-f0e0e1cd227c08ffd97aa42813a479b8c3ca6d23.tar.gz | |
Split up OMEMO into extra module
Diffstat (limited to 'src/client/QXmppOmemoManager.h')
| -rw-r--r-- | src/client/QXmppOmemoManager.h | 157 |
1 files changed, 0 insertions, 157 deletions
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 <melvo@olomono.de> -// -// 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<QXmppOmemoOwnDevicePrivate> 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<QXmppOmemoDevicePrivate> d; -}; - -class QXMPP_EXPORT QXmppOmemoManager : public QXmppClientExtension, public QXmppE2eeExtension, public QXmppPubSubEventHandler, public QXmppMessageHandler -{ - Q_OBJECT - -public: - using Result = std::variant<QXmpp::Success, QXmppStanza::Error>; - - struct DevicesResult - { - QString jid; - Result result; - }; - - explicit QXmppOmemoManager(QXmppOmemoStorage *omemoStorage); - ~QXmppOmemoManager() override; - - QFuture<bool> load(); - QFuture<bool> setUp(); - - QFuture<QByteArray> ownKey(); - QFuture<QHash<QXmpp::TrustLevel, QMultiHash<QString, QByteArray>>> keys(QXmpp::TrustLevels trustLevels = {}); - QFuture<QHash<QString, QHash<QByteArray, QXmpp::TrustLevel>>> keys(const QList<QString> &jids, QXmpp::TrustLevels trustLevels = {}); - - QFuture<bool> changeDeviceLabel(const QString &deviceLabel = {}); - - int maximumDevicesPerJid() const; - void setMaximumDevicesPerJid(int maximum); - - int maximumDevicesPerStanza() const; - void setMaximumDevicesPerStanza(int maximum); - - QFuture<DevicesResult> requestDeviceLists(const QList<QString> &jids); - QFuture<DevicesResult> subscribeToDeviceLists(const QList<QString> &jids); - QFuture<DevicesResult> unsubscribeFromDeviceLists(); - - QXmppOmemoOwnDevice ownDevice(); - QFuture<QVector<QXmppOmemoDevice>> devices(); - QFuture<QVector<QXmppOmemoDevice>> devices(const QList<QString> &jids); - QFuture<QXmppPubSubManager::Result> removeContactDevices(const QString &jid); - - void setAcceptedSessionBuildingTrustLevels(QXmpp::TrustLevels trustLevels); - QXmpp::TrustLevels acceptedSessionBuildingTrustLevels(); - - void setNewDeviceAutoSessionBuildingEnabled(bool isNewDeviceAutoSessionBuildingEnabled); - bool isNewDeviceAutoSessionBuildingEnabled(); - - QFuture<void> buildMissingSessions(const QList<QString> &jids); - - QFuture<bool> resetOwnDevice(); - QFuture<bool> resetAll(); - - QFuture<void> setSecurityPolicy(QXmpp::TrustSecurityPolicy securityPolicy); - QFuture<QXmpp::TrustSecurityPolicy> securityPolicy(); - - QFuture<void> setTrustLevel(const QMultiHash<QString, QByteArray> &keyIds, QXmpp::TrustLevel trustLevel); - QFuture<QXmpp::TrustLevel> trustLevel(const QString &keyOwnerJid, const QByteArray &keyId); - - /// \cond - QFuture<MessageEncryptResult> encryptMessage(QXmppMessage &&message, const std::optional<QXmppSendStanzaParams> ¶ms) override; - - QFuture<IqEncryptResult> encryptIq(QXmppIq &&iq, const std::optional<QXmppSendStanzaParams> ¶ms) override; - QFuture<IqDecryptResult> 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<QString, QByteArray> &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<QXmppOmemoManagerPrivate> d; - - friend class QXmppOmemoManagerPrivate; - friend class tst_QXmppOmemoManager; -}; - -#endif // QXMPPOMEMOMANAGER_H |
