1 files changed, 69 insertions, 1 deletions
diff --git a/src/DeviceVerificationFlow.cpp b/src/DeviceVerificationFlow.cpp
index 69d6ab9c..12e31c04 100644
--- a/src/DeviceVerificationFlow.cpp
+++ b/src/DeviceVerificationFlow.cpp
@@ -1,5 +1,8 @@
#include "DeviceVerificationFlow.h"
+#include <MatrixClient.h>
+#include <QDateTime>
+#include <QDebug> // only for debugging
#include <QTimer>
static constexpr int TIMEOUT = 2 * 60 * 1000; // 2 minutes
@@ -15,17 +18,80 @@ DeviceVerificationFlow::DeviceVerificationFlow(QObject *)
timeout->start(TIMEOUT);
}
-//! accepts a verification and starts the verification flow
+std::string
+DeviceVerificationFlow::generate_txn_id()
+{
+ this->transaction_id = mtx::client::utils::random_token(32, false);
+ return this->transaction_id;
+}
+
+//! accepts a verification
void
DeviceVerificationFlow::acceptVerificationRequest()
{
+ mtx::requests::ToDeviceMessages<mtx::events::msg::KeyVerificationAccept> body;
+ mtx::events::msg::KeyVerificationAccept req;
+
+ req.transaction_id = this->transaction_id;
+ req.method = mtx::events::msg::VerificationMethods::SASv1;
+ req.key_agreement_protocol = "";
+ req.hash = "";
+ req.message_authentication_code = "";
+ // req.short_authentication_string = "";
+ req.commitment = "";
+
emit verificationRequestAccepted(rand() % 2 ? Emoji : Decimal);
+
+ // Yet to add send to_device message
+}
+//! starts the verification flow
+void
+DeviceVerificationFlow::startVerificationRequest()
+{
+ mtx::requests::ToDeviceMessages<mtx::events::msg::KeyVerificationAccept> body;
+ mtx::events::msg::KeyVerificationAccept req;
+
+ // req.from_device = "";
+ req.transaction_id = this->transaction_id;
+ req.method = mtx::events::msg::VerificationMethods::SASv1;
+ req.key_agreement_protocol = {};
+ // req.hashes = {};
+ req.message_authentication_code = {};
+ // req.short_authentication_string = "";
+
+ // Yet to add send to_device message
+}
+//! sends a verification request
+void
+DeviceVerificationFlow::sendVerificationRequest()
+{
+ QDateTime CurrentTime = QDateTime::currentDateTimeUtc();
+
+ mtx::requests::ToDeviceMessages<mtx::events::msg::KeyVerificationRequest> body;
+ mtx::events::msg::KeyVerificationRequest req;
+
+ req.from_device = "";
+ req.transaction_id = generate_txn_id();
+ req.methods.resize(1);
+ req.methods[0] = mtx::events::msg::VerificationMethods::SASv1;
+ req.timestamp = (uint64_t)CurrentTime.toTime_t();
+
+ // Yet to add send to_device message
}
//! cancels a verification flow
void
DeviceVerificationFlow::cancelVerification()
{
+ mtx::requests::ToDeviceMessages<mtx::events::msg::KeyVerificationCancel> body;
+ mtx::events::msg::KeyVerificationCancel req;
+
+ req.transaction_id = this->transaction_id;
+ req.reason = "";
+ req.code = "";
+
this->deleteLater();
+
+ // Yet to add send to_device message
}
//! Completes the verification flow
void
@@ -33,4 +99,6 @@ DeviceVerificationFlow::acceptDevice()
{
emit deviceVerified();
this->deleteLater();
+
+ // Yet to add send to_device message
}
|