aboutsummaryrefslogtreecommitdiff
path: root/src/base/QXmppGlobal.cpp
diff options
context:
space:
mode:
authorLinus Jahn <lnj@kaidan.im>2022-04-06 13:02:29 +0200
committerLinus Jahn <lnj@kaidan.im>2022-04-06 15:02:47 +0200
commita8fd01e50a3088df8bc6b367d1c14fe1da93be91 (patch)
tree415b66cdd850fdb0491e0d2e5fd698ae61f1c1d8 /src/base/QXmppGlobal.cpp
parenta3e110d6a219f2dc3bfd6d8fc238f5d022f30aea (diff)
downloadqxmpp-a8fd01e50a3088df8bc6b367d1c14fe1da93be91.tar.gz
Message: Move encryption namespace parsing into Global private
Diffstat (limited to 'src/base/QXmppGlobal.cpp')
-rw-r--r--src/base/QXmppGlobal.cpp49
1 files changed, 49 insertions, 0 deletions
diff --git a/src/base/QXmppGlobal.cpp b/src/base/QXmppGlobal.cpp
new file mode 100644
index 00000000..1d0d9afb
--- /dev/null
+++ b/src/base/QXmppGlobal.cpp
@@ -0,0 +1,49 @@
+// SPDX-FileCopyrightText: 2022 Linus Jahn <lnj@kaidan.im>
+//
+// SPDX-License-Identifier: LGPL-2.1-or-later
+
+#include "QXmppConstants_p.h"
+#include "QXmppGlobal_p.h"
+
+#include <QList>
+
+static const QStringList ENCRYPTION_NAMESPACES = {
+ QString(),
+ QString(),
+ ns_otr,
+ ns_legacy_openpgp,
+ ns_ox,
+ ns_omemo,
+ ns_omemo_1,
+ ns_omemo_2
+};
+
+static const QStringList ENCRYPTION_NAMES = {
+ QString(),
+ QString(),
+ QStringLiteral("OTR"),
+ QStringLiteral("Legacy OpenPGP"),
+ QStringLiteral("OpenPGP for XMPP (OX)"),
+ QStringLiteral("OMEMO"),
+ QStringLiteral("OMEMO 1"),
+ QStringLiteral("OMEMO 2")
+};
+
+std::optional<QXmpp::Encryption> QXmpp::Private::encryptionFromString(const QString &str)
+{
+ int index = ENCRYPTION_NAMESPACES.indexOf(str);
+ if (index < 0) {
+ return {};
+ }
+ return QXmpp::Encryption(index);
+}
+
+QString QXmpp::Private::encryptionToString(Encryption encryption)
+{
+ return ENCRYPTION_NAMESPACES.at(int(encryption));
+}
+
+QString QXmpp::Private::encryptionToName(Encryption encryption)
+{
+ return ENCRYPTION_NAMES.at(int(encryption));
+}