aboutsummaryrefslogtreecommitdiff
path: root/lib/e2ee/qolmoutboundsession.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/e2ee/qolmoutboundsession.cpp')
-rw-r--r--lib/e2ee/qolmoutboundsession.cpp44
1 files changed, 24 insertions, 20 deletions
diff --git a/lib/e2ee/qolmoutboundsession.cpp b/lib/e2ee/qolmoutboundsession.cpp
index 79c16e01..22107a21 100644
--- a/lib/e2ee/qolmoutboundsession.cpp
+++ b/lib/e2ee/qolmoutboundsession.cpp
@@ -2,9 +2,10 @@
//
// SPDX-License-Identifier: LGPL-2.1-or-later
-#include "e2ee/qolmoutboundsession.h"
+#include "qolmoutboundsession.h"
-#include "e2ee/qolmutils.h"
+#include "logging.h"
+#include "qolmutils.h"
#include <olm/olm.h>
@@ -43,8 +44,9 @@ QOlmOutboundGroupSessionPtr QOlmOutboundGroupSession::create()
throw olm_outbound_group_session_last_error_code(olmOutboundGroupSession);
}
+ // FIXME: is it used anywhere?
const auto keyMaxLength = olm_outbound_group_session_key_length(olmOutboundGroupSession);
- QByteArray keyBuffer(keyMaxLength, '0');
+ QByteArray keyBuffer(keyMaxLength, '\0');
olm_outbound_group_session_key(olmOutboundGroupSession, reinterpret_cast<uint8_t *>(keyBuffer.data()),
keyMaxLength);
@@ -55,8 +57,9 @@ QOlmOutboundGroupSessionPtr QOlmOutboundGroupSession::create()
QOlmExpected<QByteArray> QOlmOutboundGroupSession::pickle(const PicklingMode &mode) const
{
- QByteArray pickledBuf(olm_pickle_outbound_group_session_length(m_groupSession), '0');
- QByteArray key = toKey(mode);
+ QByteArray pickledBuf(
+ olm_pickle_outbound_group_session_length(m_groupSession), '\0');
+ auto key = toKey(mode);
if (olm_pickle_outbound_group_session(m_groupSession, key.data(),
key.length(), pickledBuf.data(),
pickledBuf.length())
@@ -64,40 +67,41 @@ QOlmExpected<QByteArray> QOlmOutboundGroupSession::pickle(const PicklingMode &mo
return lastErrorCode();
key.clear();
-
return pickledBuf;
}
-QOlmExpected<QOlmOutboundGroupSessionPtr> QOlmOutboundGroupSession::unpickle(const QByteArray &pickled, const PicklingMode &mode)
+QOlmExpected<QOlmOutboundGroupSessionPtr> QOlmOutboundGroupSession::unpickle(
+ QByteArray&& pickled, const PicklingMode& mode)
{
- QByteArray pickledBuf = pickled;
auto *olmOutboundGroupSession = olm_outbound_group_session(new uint8_t[olm_outbound_group_session_size()]);
- QByteArray key = toKey(mode);
+ auto key = toKey(mode);
if (olm_unpickle_outbound_group_session(olmOutboundGroupSession, key.data(),
- key.length(), pickledBuf.data(),
- pickledBuf.length())
+ key.length(), pickled.data(),
+ pickled.length())
== olm_error()) {
// FIXME: create the session object earlier and use lastError()
return olm_outbound_group_session_last_error_code(
olmOutboundGroupSession);
}
const auto idMaxLength = olm_outbound_group_session_id_length(olmOutboundGroupSession);
- QByteArray idBuffer(idMaxLength, '0');
+ QByteArray idBuffer(idMaxLength, '\0');
olm_outbound_group_session_id(olmOutboundGroupSession, reinterpret_cast<uint8_t *>(idBuffer.data()),
idBuffer.length());
+ // FIXME: idBuffer doesn't seem to be used, is it needed here?
key.clear();
return std::make_unique<QOlmOutboundGroupSession>(olmOutboundGroupSession);
}
-QOlmExpected<QByteArray> QOlmOutboundGroupSession::encrypt(const QString &plaintext) const
+QOlmExpected<QByteArray> QOlmOutboundGroupSession::encrypt(
+ const QByteArray& plaintext) const
{
- QByteArray plaintextBuf = plaintext.toUtf8();
- const auto messageMaxLength = olm_group_encrypt_message_length(m_groupSession, plaintextBuf.length());
- QByteArray messageBuf(messageMaxLength, '0');
+ const auto messageMaxLength =
+ olm_group_encrypt_message_length(m_groupSession, plaintext.length());
+ QByteArray messageBuf(messageMaxLength, '\0');
if (olm_group_encrypt(m_groupSession,
- reinterpret_cast<uint8_t*>(plaintextBuf.data()),
- plaintextBuf.length(),
+ reinterpret_cast<const uint8_t*>(plaintext.data()),
+ plaintext.length(),
reinterpret_cast<uint8_t*>(messageBuf.data()),
messageBuf.length())
== olm_error())
@@ -114,7 +118,7 @@ uint32_t QOlmOutboundGroupSession::sessionMessageIndex() const
QByteArray QOlmOutboundGroupSession::sessionId() const
{
const auto idMaxLength = olm_outbound_group_session_id_length(m_groupSession);
- QByteArray idBuffer(idMaxLength, '0');
+ QByteArray idBuffer(idMaxLength, '\0');
if (olm_outbound_group_session_id(
m_groupSession, reinterpret_cast<uint8_t*>(idBuffer.data()),
idBuffer.length())
@@ -127,7 +131,7 @@ QByteArray QOlmOutboundGroupSession::sessionId() const
QOlmExpected<QByteArray> QOlmOutboundGroupSession::sessionKey() const
{
const auto keyMaxLength = olm_outbound_group_session_key_length(m_groupSession);
- QByteArray keyBuffer(keyMaxLength, '0');
+ QByteArray keyBuffer(keyMaxLength, '\0');
if (olm_outbound_group_session_key(
m_groupSession, reinterpret_cast<uint8_t*>(keyBuffer.data()),
keyMaxLength)