aboutsummaryrefslogtreecommitdiff
path: root/src/omemo/QXmppOmemoDeviceBundle_p.h
diff options
context:
space:
mode:
authorLinus Jahn <lnj@kaidan.im>2022-05-31 12:22:48 +0200
committerLinus Jahn <lnj@kaidan.im>2022-08-13 15:55:03 +0200
commitf0e0e1cd227c08ffd97aa42813a479b8c3ca6d23 (patch)
tree12ca6aefdef9195ee8937406db86e73cf1a5f820 /src/omemo/QXmppOmemoDeviceBundle_p.h
parent87df8a8dda385558d39639ce09e2717974264ab6 (diff)
downloadqxmpp-f0e0e1cd227c08ffd97aa42813a479b8c3ca6d23.tar.gz
Split up OMEMO into extra module
Diffstat (limited to 'src/omemo/QXmppOmemoDeviceBundle_p.h')
-rw-r--r--src/omemo/QXmppOmemoDeviceBundle_p.h52
1 files changed, 52 insertions, 0 deletions
diff --git a/src/omemo/QXmppOmemoDeviceBundle_p.h b/src/omemo/QXmppOmemoDeviceBundle_p.h
new file mode 100644
index 00000000..49506e86
--- /dev/null
+++ b/src/omemo/QXmppOmemoDeviceBundle_p.h
@@ -0,0 +1,52 @@
+// SPDX-FileCopyrightText: 2021 Germán Márquez Mejía <mancho@olomono.de>
+// SPDX-FileCopyrightText: 2021 Melvin Keskin <melvo@olomono.de>
+//
+// SPDX-License-Identifier: LGPL-2.1-or-later
+
+#ifndef QXMPPOMEMODEVICEBUNDLE_H
+#define QXMPPOMEMODEVICEBUNDLE_H
+
+#include "QXmppGlobal.h"
+
+#include <QHash>
+
+class QDomElement;
+class QXmlStreamWriter;
+
+class QXMPP_AUTOTEST_EXPORT QXmppOmemoDeviceBundle
+{
+public:
+ QByteArray publicIdentityKey() const;
+ void setPublicIdentityKey(const QByteArray &key);
+
+ QByteArray signedPublicPreKey() const;
+ void setSignedPublicPreKey(const QByteArray &key);
+
+ uint32_t signedPublicPreKeyId() const;
+ void setSignedPublicPreKeyId(uint32_t id);
+
+ QByteArray signedPublicPreKeySignature() const;
+ void setSignedPublicPreKeySignature(const QByteArray &signature);
+
+ QHash<uint32_t, QByteArray> publicPreKeys() const;
+ void addPublicPreKey(uint32_t id, const QByteArray &key);
+ void removePublicPreKey(uint32_t id);
+
+ /// \cond
+ void parse(const QDomElement &element);
+ void toXml(QXmlStreamWriter *writer) const;
+ /// \endcond
+
+ static bool isOmemoDeviceBundle(const QDomElement &element);
+
+private:
+ QByteArray m_publicIdentityKey;
+ QByteArray m_signedPublicPreKey;
+ uint32_t m_signedPublicPreKeyId = 0;
+ QByteArray m_signedPublicPreKeySignature;
+ QHash<uint32_t, QByteArray> m_publicPreKeys;
+};
+
+Q_DECLARE_TYPEINFO(QXmppOmemoDeviceBundle, Q_MOVABLE_TYPE);
+
+#endif // QXMPPOMEMODEVICEBUNDLE_H