From 0752de902404ed59fdc71975a72a42c487edb5f6 Mon Sep 17 00:00:00 2001 From: Melvin Keskin Date: Sat, 4 Mar 2023 00:32:44 +0100 Subject: Update OMEMO to new libomemo-c 0.5 APIs --- src/omemo/QXmppOmemoManager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/omemo/QXmppOmemoManager.cpp') diff --git a/src/omemo/QXmppOmemoManager.cpp b/src/omemo/QXmppOmemoManager.cpp index 55a21190..7b38c73e 100644 --- a/src/omemo/QXmppOmemoManager.cpp +++ b/src/omemo/QXmppOmemoManager.cpp @@ -669,7 +669,7 @@ QXmppOmemoOwnDevice Manager::ownDevice() QXmppOmemoOwnDevice device; device.setLabel(ownDevice.label); - device.setKeyId(createKeyId(ownDevice.publicIdentityKey)); + device.setKeyId(ownDevice.publicIdentityKey); return device; } -- cgit v1.2.3 From 72571909c4b0e95f1b5ab3865de2b25fe859b367 Mon Sep 17 00:00:00 2001 From: Melvin Keskin Date: Sat, 4 Mar 2023 01:09:23 +0100 Subject: Organize OMEMO includes --- src/base/QXmppOmemoElement_p.h | 2 +- src/omemo/QXmppOmemoData.cpp | 2 -- src/omemo/QXmppOmemoDeviceList_p.h | 2 +- src/omemo/QXmppOmemoManager.cpp | 3 --- tests/qxmppomemomanager/tst_qxmppomemomanager.cpp | 2 -- 5 files changed, 2 insertions(+), 9 deletions(-) (limited to 'src/omemo/QXmppOmemoManager.cpp') diff --git a/src/base/QXmppOmemoElement_p.h b/src/base/QXmppOmemoElement_p.h index 1e160479..cd95ea00 100644 --- a/src/base/QXmppOmemoElement_p.h +++ b/src/base/QXmppOmemoElement_p.h @@ -7,13 +7,13 @@ #define QXMPPOMEMOELEMENT_H #include "QXmppGlobal.h" +#include "QXmppOmemoEnvelope_p.h" #include #include class QDomElement; -class QXmppOmemoEnvelope; class QXmlStreamWriter; class QXMPP_EXPORT QXmppOmemoElement diff --git a/src/omemo/QXmppOmemoData.cpp b/src/omemo/QXmppOmemoData.cpp index d1dd2a88..d457326a 100644 --- a/src/omemo/QXmppOmemoData.cpp +++ b/src/omemo/QXmppOmemoData.cpp @@ -8,10 +8,8 @@ #include "QXmppOmemoDeviceElement_p.h" #include "QXmppOmemoDeviceList_p.h" #include "QXmppOmemoElement_p.h" -#include "QXmppOmemoEnvelope_p.h" #include "QXmppOmemoIq_p.h" #include "QXmppOmemoItems_p.h" -#include "QXmppUtils.h" #include #include diff --git a/src/omemo/QXmppOmemoDeviceList_p.h b/src/omemo/QXmppOmemoDeviceList_p.h index 76bff435..46ac724d 100644 --- a/src/omemo/QXmppOmemoDeviceList_p.h +++ b/src/omemo/QXmppOmemoDeviceList_p.h @@ -7,12 +7,12 @@ #define QXMPPOMEMODEVICELIST_H #include "QXmppGlobal.h" +#include "QXmppOmemoDeviceElement_p.h" #include "QList" class QDomElement; class QXmlStreamWriter; -class QXmppOmemoDeviceElement; class QXMPP_AUTOTEST_EXPORT QXmppOmemoDeviceList : public QList { diff --git a/src/omemo/QXmppOmemoManager.cpp b/src/omemo/QXmppOmemoManager.cpp index 7b38c73e..f3137889 100644 --- a/src/omemo/QXmppOmemoManager.cpp +++ b/src/omemo/QXmppOmemoManager.cpp @@ -5,10 +5,7 @@ #include "QXmppClient.h" #include "QXmppConstants_p.h" -#include "QXmppOmemoDeviceElement_p.h" -#include "QXmppOmemoDeviceList_p.h" #include "QXmppOmemoElement_p.h" -#include "QXmppOmemoEnvelope_p.h" #include "QXmppOmemoIq_p.h" #include "QXmppOmemoItems_p.h" #include "QXmppOmemoManager_p.h" diff --git a/tests/qxmppomemomanager/tst_qxmppomemomanager.cpp b/tests/qxmppomemomanager/tst_qxmppomemomanager.cpp index 95c70237..e6d2c7ed 100644 --- a/tests/qxmppomemomanager/tst_qxmppomemomanager.cpp +++ b/tests/qxmppomemomanager/tst_qxmppomemomanager.cpp @@ -12,11 +12,9 @@ #include "QXmppE2eeMetadata.h" #include "QXmppMessage.h" #include "QXmppOmemoElement_p.h" -#include "QXmppOmemoEnvelope_p.h" #include "QXmppOmemoManager.h" #include "QXmppOmemoManager_p.h" #include "QXmppOmemoMemoryStorage.h" -#include "QXmppPubSubItem.h" #include "QXmppPubSubManager.h" #include "IntegrationTesting.h" -- cgit v1.2.3 From a19e16a54149be09fb5913ac211577ce254f6b28 Mon Sep 17 00:00:00 2001 From: Linus Jahn Date: Thu, 9 Mar 2023 16:01:17 +0100 Subject: omemo: Fix usage of unexported symbols from Constants_p.h This adds the constants to files from the omemo module. It fixes the build of the omemo module on windows with MSVC (and potentially release builds on linux too). --- src/omemo/QXmppOmemoManager.cpp | 1 - src/omemo/QXmppOmemoManager_p.cpp | 10 +++++++++- src/omemo/QXmppOmemoManager_p.h | 5 +++++ 3 files changed, 14 insertions(+), 2 deletions(-) (limited to 'src/omemo/QXmppOmemoManager.cpp') diff --git a/src/omemo/QXmppOmemoManager.cpp b/src/omemo/QXmppOmemoManager.cpp index f3137889..8af588d1 100644 --- a/src/omemo/QXmppOmemoManager.cpp +++ b/src/omemo/QXmppOmemoManager.cpp @@ -4,7 +4,6 @@ // SPDX-License-Identifier: LGPL-2.1-or-later #include "QXmppClient.h" -#include "QXmppConstants_p.h" #include "QXmppOmemoElement_p.h" #include "QXmppOmemoIq_p.h" #include "QXmppOmemoItems_p.h" diff --git a/src/omemo/QXmppOmemoManager_p.cpp b/src/omemo/QXmppOmemoManager_p.cpp index 9d2d41a2..f3b71545 100644 --- a/src/omemo/QXmppOmemoManager_p.cpp +++ b/src/omemo/QXmppOmemoManager_p.cpp @@ -7,7 +7,6 @@ #include "QXmppOmemoManager_p.h" -#include "QXmppConstants_p.h" #include "QXmppOmemoDeviceElement_p.h" #include "QXmppOmemoElement_p.h" #include "QXmppOmemoEnvelope_p.h" @@ -36,6 +35,15 @@ using Error = QXmppStanza::Error; using Manager = QXmppOmemoManager; using ManagerPrivate = QXmppOmemoManagerPrivate; +const char *ns_client = "jabber:client"; +const char *ns_pubsub_auto_create = "http://jabber.org/protocol/pubsub#auto-create"; +const char *ns_pubsub_config_node = "http://jabber.org/protocol/pubsub#config-node"; +const char *ns_pubsub_config_node_max = "http://jabber.org/protocol/pubsub#config-node-max"; +const char *ns_pubsub_create_and_configure = "http://jabber.org/protocol/pubsub#create-and-configure"; +const char *ns_pubsub_create_nodes = "http://jabber.org/protocol/pubsub#create-nodes"; +const char *ns_pubsub_publish = "http://jabber.org/protocol/pubsub#publish"; +const char *ns_pubsub_publish_options = "http://jabber.org/protocol/pubsub#publish-options"; + namespace QXmpp::Omemo::Private { const QString PAYLOAD_MESSAGE_AUTHENTICATION_CODE_TYPE = QStringLiteral("hmac(sha256)"); diff --git a/src/omemo/QXmppOmemoManager_p.h b/src/omemo/QXmppOmemoManager_p.h index 838e68ad..db488023 100644 --- a/src/omemo/QXmppOmemoManager_p.h +++ b/src/omemo/QXmppOmemoManager_p.h @@ -34,6 +34,11 @@ using namespace std::chrono_literals; namespace QXmpp::Omemo::Private { +// XMPP namespaces +constexpr auto ns_omemo_2 = "urn:xmpp:omemo:2"; +constexpr auto ns_omemo_2_bundles = "urn:xmpp:omemo:2:bundles"; +constexpr auto ns_omemo_2_devices = "urn:xmpp:omemo:2:devices"; + // default possible trust levels a key must have to be used for encryption // The class documentation must be adapted if the trust levels are modified. constexpr auto ACCEPTED_TRUST_LEVELS = TrustLevel::AutomaticallyTrusted | TrustLevel::ManuallyTrusted | TrustLevel::Authenticated; -- cgit v1.2.3 From fe5986783ad816111994a752216d58ee043ef6d8 Mon Sep 17 00:00:00 2001 From: Jonah BrĂ¼chert Date: Thu, 9 Mar 2023 16:48:09 +0100 Subject: omemo: Fix build on MSVC 2019 (#550) --- src/omemo/QXmppOmemoData.cpp | 3 ++- src/omemo/QXmppOmemoManager.cpp | 3 +++ src/omemo/QXmppOmemoManager_p.cpp | 3 +++ src/omemo/QXmppOmemoManager_p.h | 9 ++++++--- 4 files changed, 14 insertions(+), 4 deletions(-) (limited to 'src/omemo/QXmppOmemoManager.cpp') diff --git a/src/omemo/QXmppOmemoData.cpp b/src/omemo/QXmppOmemoData.cpp index d457326a..6bc1815b 100644 --- a/src/omemo/QXmppOmemoData.cpp +++ b/src/omemo/QXmppOmemoData.cpp @@ -3,7 +3,6 @@ // // SPDX-License-Identifier: LGPL-2.1-or-later -#include "QXmppConstants_p.h" #include "QXmppOmemoDeviceBundle_p.h" #include "QXmppOmemoDeviceElement_p.h" #include "QXmppOmemoDeviceList_p.h" @@ -14,6 +13,8 @@ #include #include +const char *ns_omemo_2 = "urn:xmpp:omemo:2"; + /// \cond /// /// \class QXmppOmemoDeviceElement diff --git a/src/omemo/QXmppOmemoManager.cpp b/src/omemo/QXmppOmemoManager.cpp index 8af588d1..7ad511e0 100644 --- a/src/omemo/QXmppOmemoManager.cpp +++ b/src/omemo/QXmppOmemoManager.cpp @@ -14,6 +14,9 @@ #include +#undef max +#undef interface + using namespace QXmpp; using namespace QXmpp::Private; using namespace QXmpp::Omemo::Private; diff --git a/src/omemo/QXmppOmemoManager_p.cpp b/src/omemo/QXmppOmemoManager_p.cpp index f3b71545..8da77f5f 100644 --- a/src/omemo/QXmppOmemoManager_p.cpp +++ b/src/omemo/QXmppOmemoManager_p.cpp @@ -27,6 +27,9 @@ #endif #include +#undef max +#undef interface + using namespace QXmpp; using namespace QXmpp::Private; using namespace QXmpp::Omemo::Private; diff --git a/src/omemo/QXmppOmemoManager_p.h b/src/omemo/QXmppOmemoManager_p.h index db488023..01a372a7 100644 --- a/src/omemo/QXmppOmemoManager_p.h +++ b/src/omemo/QXmppOmemoManager_p.h @@ -18,6 +18,8 @@ #include #include +#undef max + class QXmppTrustManager; class QXmppOmemoManager; class QXmppPubSubManager; @@ -171,9 +173,10 @@ public: QXmppOmemoManagerPrivate(QXmppOmemoManager *parent, QXmppOmemoStorage *omemoStorage); void init(); - bool initGlobalContext(); - bool initLocking(); - bool initCryptoProvider(); + // exports for unit tests + QXMPP_EXPORT bool initGlobalContext(); + QXMPP_EXPORT bool initLocking(); + QXMPP_EXPORT bool initCryptoProvider(); void initStores(); signal_protocol_identity_key_store createIdentityKeyStore() const; -- cgit v1.2.3 From 13ecdcc063ad4b4c9cae12e6bc8d3d3ee2b5cf42 Mon Sep 17 00:00:00 2001 From: Blue Date: Fri, 10 Mar 2023 15:26:21 +0300 Subject: OmemoManager: Fix buildMissingSessions never finishes (#552) --- src/omemo/QXmppOmemoManager.cpp | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/omemo/QXmppOmemoManager.cpp') diff --git a/src/omemo/QXmppOmemoManager.cpp b/src/omemo/QXmppOmemoManager.cpp index 7ad511e0..0aab152d 100644 --- a/src/omemo/QXmppOmemoManager.cpp +++ b/src/omemo/QXmppOmemoManager.cpp @@ -884,13 +884,16 @@ QXmppTask Manager::buildMissingSessions(const QList &jids) auto future = d->buildSessionWithDeviceBundle(jid, deviceId, device); future.then(this, [=](auto) mutable { if (++(*processedDevicesCount) == devicesCount) { + interface.finish(); } }); } else if (++(*processedDevicesCount) == devicesCount) { + interface.finish(); } } } } else { + interface.finish(); } return interface.task(); -- cgit v1.2.3