aboutsummaryrefslogtreecommitdiff
path: root/lib/connection.cpp
diff options
context:
space:
mode:
authorAlexey Rusakov <Kitsune-Ral@users.sf.net>2022-09-21 15:45:59 +0200
committerAlexey Rusakov <Kitsune-Ral@users.sf.net>2022-09-26 10:46:34 +0200
commitbcc05aa1d52cae2b6d8e70bb6cf04fa49904687a (patch)
tree7d005271303f9d96de10766cfab4a5b5e2dceafe /lib/connection.cpp
parent363a7e40e8aa12cb780b076cca8db4f47b70f4fa (diff)
downloadlibquotient-bcc05aa1d52cae2b6d8e70bb6cf04fa49904687a.tar.gz
libquotient-bcc05aa1d52cae2b6d8e70bb6cf04fa49904687a.zip
Cleanup across E2EE code
Notably: - simplified unnecessarily verbose constructs; - formally aligned (no re-numeration was necessary) QOlmMessage::Type with corresponding OLM_ constants; - dropped QOlmSession::encryptMessageType() because it's very sensitive to the order of calling with QOlmSession::encrypt() (and encrypt() itself already calls it and returns the message type); - simplify the return type of pickle() calls that can only fail due to an internal error; - replace const QString& with QStringView or const QByteArray& where appropriate; - use '\0' where it was meant to be instead of '0'.
Diffstat (limited to 'lib/connection.cpp')
-rw-r--r--lib/connection.cpp8
1 files changed, 3 insertions, 5 deletions
diff --git a/lib/connection.cpp b/lib/connection.cpp
index 865dff79..f38bb751 100644
--- a/lib/connection.cpp
+++ b/lib/connection.cpp
@@ -652,8 +652,7 @@ void Connection::Private::completeSetup(const QString& mxId)
});
} else {
// account already existing
- auto pickle = database->accountPickle();
- olmAccount->unpickle(pickle, picklingMode);
+ olmAccount->unpickle(database->accountPickle(), picklingMode);
}
#endif // Quotient_E2EE_ENABLED
emit q->stateChanged();
@@ -2300,14 +2299,13 @@ std::pair<QOlmMessage::Type, QByteArray> Connection::Private::olmEncryptMessage(
{
const auto& curveKey = curveKeyForUserDevice(userId, device);
const auto& olmSession = olmSessions.at(curveKey).front();
- QOlmMessage::Type type = olmSession->encryptMessageType();
const auto result = olmSession->encrypt(message);
if (const auto pickle = olmSession->pickle(picklingMode)) {
database->updateOlmSession(curveKey, olmSession->sessionId(), *pickle);
} else {
qWarning(E2EE) << "Failed to pickle olm session: " << pickle.error();
}
- return { type, result.toCiphertext() };
+ return { result.type(), result.toCiphertext() };
}
bool Connection::Private::createOlmSession(const QString& targetUserId,
@@ -2343,7 +2341,7 @@ bool Connection::Private::createOlmSession(const QString& targetUserId,
return false;
}
const auto recipientCurveKey =
- curveKeyForUserDevice(targetUserId, targetDeviceId);
+ curveKeyForUserDevice(targetUserId, targetDeviceId).toLatin1();
auto session =
QOlmSession::createOutboundSession(olmAccount.get(), recipientCurveKey,
signedOneTimeKey->key());