// SPDX-FileCopyrightText: 2021 Germán Márquez Mejía // SPDX-FileCopyrightText: 2021 Melvin Keskin // // SPDX-License-Identifier: LGPL-2.1-or-later #ifndef QXMPPOMEMODEVICEBUNDLE_H #define QXMPPOMEMODEVICEBUNDLE_H #include "QXmppGlobal.h" #include 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 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 m_publicPreKeys; }; Q_DECLARE_TYPEINFO(QXmppOmemoDeviceBundle, Q_MOVABLE_TYPE); #endif // QXMPPOMEMODEVICEBUNDLE_H