1 files changed, 48 insertions, 0 deletions
diff --git a/src/encryption/VerificationManager.h b/src/encryption/VerificationManager.h
new file mode 100644
index 00000000..e00ddc10
--- /dev/null
+++ b/src/encryption/VerificationManager.h
@@ -0,0 +1,48 @@
+// SPDX-FileCopyrightText: 2021 Nheko Contributors
+//
+// SPDX-License-Identifier: GPL-3.0-or-later
+
+#pragma once
+
+#include <QHash>
+#include <QObject>
+#include <QSharedPointer>
+
+#include <mtx/events.hpp>
+#include <mtx/events/encrypted.hpp>
+
+class DeviceVerificationFlow;
+class TimelineModel;
+class TimelineModel;
+class TimelineViewManager;
+class RoomlistModel;
+
+class VerificationManager : public QObject
+{
+ Q_OBJECT
+
+public:
+ VerificationManager(TimelineViewManager *o = nullptr);
+
+ Q_INVOKABLE void removeVerificationFlow(DeviceVerificationFlow *flow);
+ void verifyUser(QString userid);
+ void verifyDevice(QString userid, QString deviceid);
+
+signals:
+ void newDeviceVerificationRequest(DeviceVerificationFlow *flow);
+
+public slots:
+ void receivedRoomDeviceVerificationRequest(
+ const mtx::events::RoomEvent<mtx::events::msg::KeyVerificationRequest> &message,
+ TimelineModel *model);
+ void receivedDeviceVerificationRequest(const mtx::events::msg::KeyVerificationRequest &msg,
+ std::string sender);
+ void receivedDeviceVerificationStart(const mtx::events::msg::KeyVerificationStart &msg,
+ std::string sender);
+
+private:
+ QHash<QString, QSharedPointer<DeviceVerificationFlow>> dvList;
+ bool isInitialSync_ = false;
+ RoomlistModel *rooms_;
+};
+
|