From 2312f95365b03b3fedd2e672b2e0cec98dae3cde Mon Sep 17 00:00:00 2001 From: Melvin Keskin Date: Thu, 27 Jan 2022 17:06:12 +0100 Subject: Add QXmppOmemoIq The IQ is only used internally and is private. --- src/base/QXmppOmemoData.cpp | 57 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) (limited to 'src/base/QXmppOmemoData.cpp') diff --git a/src/base/QXmppOmemoData.cpp b/src/base/QXmppOmemoData.cpp index c19f9b88..206e78f2 100644 --- a/src/base/QXmppOmemoData.cpp +++ b/src/base/QXmppOmemoData.cpp @@ -9,6 +9,7 @@ #include "QXmppOmemoDeviceList.h" #include "QXmppOmemoElement.h" #include "QXmppOmemoEnvelope.h" +#include "QXmppOmemoIq_p.h" #include "QXmppUtils.h" #include @@ -790,3 +791,59 @@ bool QXmppOmemoElement::isOmemoElement(const QDomElement &element) return element.tagName() == QStringLiteral("encrypted") && element.namespaceURI() == ns_omemo_2; } + +/// +/// \class QXmppOmemoIq +/// +/// \brief The QXmppOmemoIq class represents an encrypted IQ stanza as defined +/// by \xep{0384, OMEMO Encryption} and \xep{0420, Stanza Content Encryption} +/// (SCE). +/// +/// \ingroup Stanzas +/// + +/// +/// Returns the OMEMO element which contains the data used by OMEMO. +/// +/// \return the OMEMO element +/// +QXmppOmemoElement QXmppOmemoIq::omemoElement() +{ + return m_omemoElement; +} + +/// +/// Sets the OMEMO element which contains the data used by OMEMO. +/// +/// \param omemoElement OMEMO element +/// +void QXmppOmemoIq::setOmemoElement(const QXmppOmemoElement &omemoElement) +{ + m_omemoElement = omemoElement; +} + +/// \cond +void QXmppOmemoIq::parseElementFromChild(const QDomElement &element) +{ + QDomElement child = element.firstChildElement(); + m_omemoElement.parse(child); +} + +void QXmppOmemoIq::toXmlElementFromChild(QXmlStreamWriter *writer) const +{ + m_omemoElement.toXml(writer); +} +/// \endcond + +/// +/// Determines whether the given DOM element is an OMEMO IQ stanza. +/// +/// \param element DOM element being checked +/// +/// \return true if element is an OMEMO IQ stanza, otherwise false +/// +bool QXmppOmemoIq::isOmemoIq(const QDomElement &element) +{ + auto child = element.firstChildElement(); + return !child.isNull() && QXmppOmemoElement::isOmemoElement(child); +} -- cgit v1.2.3