/* * Created by victoria on 2021-05-12. */ #pragma once #include #include #include namespace QXmpp::Omemo { class Device { public: [[nodiscard]] QXmppElement toXml() const; void fromXml(const QXmppElement &element); int id; }; class DeviceList { public: [[nodiscard]] QXmppElement toXml() const; [[nodiscard]] QXmppIq toIq() const; /// Expects a urn:xmpp:omemo:1:devices node void fromXml(const QXmppElement &element); QList devices; }; class PreKey { public: [[nodiscard]] QXmppElement toXml() const; /// Expects a void fromXml(const QXmppElement &element); int id; QString data; }; class Bundle { public: [[nodiscard]] static QXmppPubSubIq fetchDeviceBundleIq(int deviceId); [[nodiscard]] QXmppElement toXml() const; [[nodiscard]] QXmppIq toIq(int deviceId) const; void fromXml(const QXmppElement &element); QString spk; int spkId; QString spks; QString ik; QList prekeys; }; class MessageKey { public: [[nodiscard]] QXmppElement toXml() const; int receivingDeviceId{}; bool prekey{}; QString key{}; }; class EncryptedMessage { public: [[nodiscard]] QXmppElement header() const; [[nodiscard]] QXmppElement content() const; [[nodiscard]] QXmppElement toXml() const; [[nodiscard]] QXmppElement payload() const; int fromDeviceId{}; QList keys{}; QString from{}; QString to{}; QDateTime timestamp{}; QString iv{}; QXmppMessage message{}; }; } // namespace QXmpp::Omemo