Tweak UI for device verification and Add more slots

This commit is contained in:
Chethan2k1 2020-06-04 19:14:15 +05:30 committed by CH Chethan Reddy
parent f9c0f4dd54
commit b628f485ff
4 changed files with 146 additions and 13 deletions

View file

@ -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
}