aboutsummaryrefslogtreecommitdiff
path: root/lib/connection.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/connection.h')
-rw-r--r--lib/connection.h15
1 files changed, 13 insertions, 2 deletions
diff --git a/lib/connection.h b/lib/connection.h
index b75bd5b5..f8744752 100644
--- a/lib/connection.h
+++ b/lib/connection.h
@@ -24,6 +24,8 @@
#ifdef Quotient_E2EE_ENABLED
#include "e2ee/e2ee.h"
+#include "e2ee/qolmmessage.h"
+#include "e2ee/qolmoutboundsession.h"
#endif
Q_DECLARE_METATYPE(Quotient::GetLoginFlowsJob::LoginFlow)
@@ -132,7 +134,7 @@ class QUOTIENT_API Connection : public QObject {
public:
using UsersToDevicesToEvents =
- UnorderedMap<QString, UnorderedMap<QString, const Event&>>;
+ UnorderedMap<QString, UnorderedMap<QString, EventPtr>>;
enum RoomVisibility {
PublishRoom,
@@ -321,6 +323,15 @@ public:
const Room* room);
void saveMegolmSession(const Room* room,
const QOlmInboundGroupSession& session);
+ bool hasOlmSession(const QString& user, const QString& deviceId) const;
+
+ QOlmOutboundGroupSessionPtr loadCurrentOutboundMegolmSession(Room* room);
+ void saveCurrentOutboundMegolmSession(Room *room, const QOlmOutboundGroupSessionPtr& data);
+
+
+ //This assumes that an olm session with (user, device) exists
+ QPair<QOlmMessage::Type, QByteArray> olmEncryptMessage(const QString& userId, const QString& device, const QByteArray& message);
+ void createOlmSession(const QString& theirIdentityKey, const QString& theirOneTimeKey);
#endif // Quotient_E2EE_ENABLED
Q_INVOKABLE Quotient::SyncJob* syncJob() const;
Q_INVOKABLE int millisToReconnect() const;
@@ -683,7 +694,7 @@ public Q_SLOTS:
PicklingMode picklingMode() const;
QJsonObject decryptNotification(const QJsonObject &notification);
- QStringList devicesForUser(User* user) const;
+ QStringList devicesForUser(const QString& user) const;
QString curveKeyForUserDevice(const QString &user, const QString& device) const;
QString edKeyForUserDevice(const QString& user, const QString& device) const;
bool isKnownCurveKey(const QString& user, const QString& curveKey);