aboutsummaryrefslogtreecommitdiff
path: root/src/base/QXmppOmemoDeviceBundle_p.h
diff options
context:
space:
mode:
authorMelvin Keskin <melvo@olomono.de>2022-03-25 20:01:34 +0100
committerLinus Jahn <lnj@kaidan.im>2022-04-07 19:33:45 +0200
commitadc51b73256e92cf59ac7645c4a6f8343f134288 (patch)
tree9a8241cf8d35d85da1b07d08bbc19a73b3fec8d2 /src/base/QXmppOmemoDeviceBundle_p.h
parent71f46efa773bbbc02e9c75dee8365499bdd887f0 (diff)
downloadqxmpp-adc51b73256e92cf59ac7645c4a6f8343f134288.tar.gz
Make OMEMO data classes private
Diffstat (limited to 'src/base/QXmppOmemoDeviceBundle_p.h')
-rw-r--r--src/base/QXmppOmemoDeviceBundle_p.h52
1 files changed, 52 insertions, 0 deletions
diff --git a/src/base/QXmppOmemoDeviceBundle_p.h b/src/base/QXmppOmemoDeviceBundle_p.h
new file mode 100644
index 00000000..49506e86
--- /dev/null
+++ b/src/base/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