summary refs log tree commit diff
path: root/src/encryption/VerificationManager.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/encryption/VerificationManager.h')
-rw-r--r--src/encryption/VerificationManager.h48
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_; +}; +