aboutsummaryrefslogtreecommitdiff
path: root/lib/crypto/qolmsession.h.back
diff options
context:
space:
mode:
authorAlexey Andreyev <aa13q@ya.ru>2021-01-28 23:51:56 +0300
committerTobias Fella <fella@posteo.de>2021-12-01 21:34:52 +0100
commitd72f220e3e3a3b243fdafd93d1405f8207dc516a (patch)
treef4306b6397e39d6842a29f9a31fe5c858be8a4af /lib/crypto/qolmsession.h.back
parent9f71b2a79fba7c5d5ce09ebfdd482c8c470203d9 (diff)
downloadlibquotient-d72f220e3e3a3b243fdafd93d1405f8207dc516a.tar.gz
libquotient-d72f220e3e3a3b243fdafd93d1405f8207dc516a.zip
E2EE: initial port to internal olm wrapper
Remove qtolm git module. Update CMakeLists.txt. Rename olm to crypto subdir to prevent disambiguation. Rename internal files accordingly. Comment out not ported E2EE API usage.
Diffstat (limited to 'lib/crypto/qolmsession.h.back')
-rw-r--r--lib/crypto/qolmsession.h.back49
1 files changed, 49 insertions, 0 deletions
diff --git a/lib/crypto/qolmsession.h.back b/lib/crypto/qolmsession.h.back
new file mode 100644
index 00000000..cbba5cef
--- /dev/null
+++ b/lib/crypto/qolmsession.h.back
@@ -0,0 +1,49 @@
+// SPDX-FileCopyrightText: 2021 Carl Schwan <carlschwan@kde.org>
+//
+// SPDX-License-Identifier: LGPL-2.1-or-later
+
+#pragma once
+
+#include "olm/e2ee.h"
+#include "olm/olm.h"
+#include "olm/errors.h"
+#include <variant>
+
+namespace Quotient {
+
+//! An encrypted Olm message.
+struct QOlmMessage {
+ QByteArray message;
+};
+
+//! A encrypted Olm pre-key message.
+//!
+//! This message, unlike a normal Message, can be used to create new Olm sessions.
+struct PreKeyMessage
+{
+ QByteArray message;
+};
+
+enum OlmMessageType
+{
+ PreKeyType,
+ MessageType,
+};
+
+using OlmMessage = std::variant<QOlmMessage, PreKeyMessage>;
+
+std::optional<OlmMessage> fromTypeAndCipthertext(size_t messageType, const QByteArray &ciphertext);
+
+std::pair<OlmMessageType, QByteArray> toPair(const OlmMessage &message);
+
+//class QOlmSession
+//{
+// /// Creates an inbound session for sending/receiving messages from a received 'prekey' message.
+// static std::variant<std::unique_ptr<QOlmSession>, OlmError> createInboundSession(const QOlmAccount &account,
+// PreKeyMessage &message);
+//
+////private:
+// //static std::variant<std::unique_ptr<QOlmSession>, OlmError> createSessionWith(std::function<std::variant<size_t(OlmSession *)>> func);
+//}
+
+}