Browse Source

Revert "Close app on welcome back cancel"

This reverts commit 7398c70e2b.
pull/94/head
fekt 2 years ago
parent
commit
bf4b9e53ca
  1. 141
      src/mainwindow.cpp

141
src/mainwindow.cpp

@ -441,9 +441,6 @@ void MainWindow::closeEventpw(QCloseEvent* event) {
} else { } else {
qDebug() << __func__ << ": invalid rpc object!"; qDebug() << __func__ << ": invalid rpc object!";
} }
// Close the app
this->close();
} }
void MainWindow::encryptWallet() { void MainWindow::encryptWallet() {
@ -460,7 +457,7 @@ void MainWindow::encryptWallet() {
// Enable the OK button if the passwords match. // Enable the OK button if the passwords match.
QString password = ed.txtPassword->text(); QString password = ed.txtPassword->text();
if (!ed.txtPassword->text().isEmpty() && if (!ed.txtPassword->text().isEmpty() &&
ed.txtPassword->text() == ed.txtConfirmPassword->text() && password.size() >= 16) { ed.txtPassword->text() == ed.txtConfirmPassword->text() && password.size() >= 16) {
ed.lblPasswordMatch->setText(""); ed.lblPasswordMatch->setText("");
ed.buttonBox->button(QDialogButtonBox::Ok)->setEnabled(true); ed.buttonBox->button(QDialogButtonBox::Ok)->setEnabled(true);
@ -474,12 +471,13 @@ void MainWindow::encryptWallet() {
QObject::connect(ed.txtConfirmPassword, &QLineEdit::textChanged, fnPasswordEdited); QObject::connect(ed.txtConfirmPassword, &QLineEdit::textChanged, fnPasswordEdited);
QObject::connect(ed.txtPassword, &QLineEdit::textChanged, fnPasswordEdited); QObject::connect(ed.txtPassword, &QLineEdit::textChanged, fnPasswordEdited);
if (d.exec() == QDialog::Accepted) { if (d.exec() == QDialog::Accepted)
{
QString passphraseBlank = ed.txtPassword->text(); // data comes from user inputs
QString passphrase = QString("HUSH3") + passphraseBlank + QString("SDL");
int length = passphrase.length();
QString passphraseBlank = ed.txtPassword->text(); // data comes from user inputs
QString passphrase = QString("HUSH3") + passphraseBlank + QString("SDL");
int length = passphrase.length();
char *sequence = NULL; char *sequence = NULL;
sequence = new char[length+1]; sequence = new char[length+1];
@ -492,25 +490,25 @@ void MainWindow::encryptWallet() {
sequence1 = new char[length+1]; sequence1 = new char[length+1];
strncpy(sequence1, passphraseHash.toUtf8(), length+1); strncpy(sequence1, passphraseHash.toUtf8(), length+1);
#define MESSAGE ((const unsigned char *) sequence) #define MESSAGE ((const unsigned char *) sequence)
#define MESSAGE_LEN length #define MESSAGE_LEN length
#define hash ((const unsigned char *) sequence1) #define hash ((const unsigned char *) sequence1)
#define PASSWORD sequence #define PASSWORD sequence
#define KEY_LEN crypto_box_SEEDBYTES #define KEY_LEN crypto_box_SEEDBYTES
unsigned char key[KEY_LEN]; unsigned char key[KEY_LEN];
if (crypto_pwhash(key, sizeof key, PASSWORD, strlen(PASSWORD), hash, if (crypto_pwhash(key, sizeof key, PASSWORD, strlen(PASSWORD), hash,
crypto_pwhash_OPSLIMIT_SENSITIVE, crypto_pwhash_MEMLIMIT_SENSITIVE, crypto_pwhash_OPSLIMIT_SENSITIVE, crypto_pwhash_MEMLIMIT_SENSITIVE,
crypto_pwhash_ALG_DEFAULT) != 0) { crypto_pwhash_ALG_DEFAULT) != 0) {
/* out of memory */ /* out of memory */
QMessageBox::information(this, tr("Out of memory!"), QMessageBox::information(this, tr("Out of memory!"),
QString("Please close some other programs to free up memory and try again"), QString("Please close some other programs to free up memory and try again"),
QMessageBox::Ok QMessageBox::Ok
); );
qDebug() << __func__ << ": out of memory!"; qDebug() << __func__ << ": out of memory!";
exit(1); exit(1);
} }
QString passphraseHash1 = QByteArray(reinterpret_cast<const char*>(key), KEY_LEN).toHex(); QString passphraseHash1 = QByteArray(reinterpret_cast<const char*>(key), KEY_LEN).toHex();
DataStore::getChatDataStore()->setPassword(passphraseHash1); DataStore::getChatDataStore()->setPassword(passphraseHash1);
@ -519,16 +517,16 @@ void MainWindow::encryptWallet() {
auto dirHome = QDir(QStandardPaths::writableLocation(QStandardPaths::HomeLocation)); auto dirHome = QDir(QStandardPaths::writableLocation(QStandardPaths::HomeLocation));
QString sourceWallet_file = dirwallet; QString sourceWallet_file = dirwallet;
QString target_encWallet_file = dirwalletenc; QString target_encWallet_file = dirwalletenc;
FileEncryption::encrypt(target_encWallet_file, sourceWallet_file, key); FileEncryption::encrypt(target_encWallet_file, sourceWallet_file, key);
QFile wallet(dirwallet); QFile wallet(dirwallet);
wallet.rename(dirwalletbackup); wallet.rename(dirwalletbackup);
QMessageBox::information(this, tr("Wallet Encryption Success"), QMessageBox::information(this, tr("Wallet Encryption Success"),
QString("Successfully encrypted your wallet"), QString("Successfully encrypted your wallet"),
QMessageBox::Ok QMessageBox::Ok
); );
} }
qDebug() << __func__ << ": finish"; qDebug() << __func__ << ": finish";
} }
@ -633,24 +631,25 @@ void MainWindow::removeWalletEncryption() {
void MainWindow::removeWalletEncryptionStartUp() { void MainWindow::removeWalletEncryptionStartUp() {
qDebug() << __func__ << ": removing wallet encryption"; qDebug() << __func__ << ": removing wallet encryption";
QDialog d(this); QDialog d(this);
Ui_startup ed; Ui_startup ed;
ed.setupUi(&d); ed.setupUi(&d);
QObject::connect(ed.new_restore, &QPushButton::clicked, [&] { QObject::connect(ed.new_restore, &QPushButton::clicked, [&] {
d.close();
QFile wallet(dirwallet);
QFile walletenc(dirwalletenc);
wallet.remove(); d.close();
walletenc.remove(); QFile wallet(dirwallet);
QFile walletenc(dirwalletenc);
auto cl = new ConnectionLoader(this, rpc); wallet.remove();
cl->loadConnection(); walletenc.remove();
});
if (d.exec() == QDialog::Accepted) { auto cl = new ConnectionLoader(this, rpc);
cl->loadConnection();
});
if (d.exec() == QDialog::Accepted)
{
QString passphraseBlank = ed.txtPassword->text(); // data comes from user inputs QString passphraseBlank = ed.txtPassword->text(); // data comes from user inputs
QString passphrase = QString("HUSH3") + passphraseBlank + QString("SDL"); QString passphrase = QString("HUSH3") + passphraseBlank + QString("SDL");
@ -667,44 +666,44 @@ void MainWindow::removeWalletEncryptionStartUp() {
sequence1 = new char[length+1]; sequence1 = new char[length+1];
strncpy(sequence1, passphraseHash.toUtf8(), length+1); strncpy(sequence1, passphraseHash.toUtf8(), length+1);
#define MESSAGE ((const unsigned char *) sequence) #define MESSAGE ((const unsigned char *) sequence)
#define MESSAGE_LEN length #define MESSAGE_LEN length
#define hash ((const unsigned char *) sequence1) #define hash ((const unsigned char *) sequence1)
#define PASSWORD sequence #define PASSWORD sequence
#define KEY_LEN crypto_box_SEEDBYTES #define KEY_LEN crypto_box_SEEDBYTES
unsigned char key[KEY_LEN]; unsigned char key[KEY_LEN];
if (crypto_pwhash(key, sizeof key, PASSWORD, strlen(PASSWORD), hash, if (crypto_pwhash(key, sizeof key, PASSWORD, strlen(PASSWORD), hash,
crypto_pwhash_OPSLIMIT_SENSITIVE, crypto_pwhash_MEMLIMIT_SENSITIVE, crypto_pwhash_OPSLIMIT_SENSITIVE, crypto_pwhash_MEMLIMIT_SENSITIVE,
crypto_pwhash_ALG_DEFAULT) != 0) { crypto_pwhash_ALG_DEFAULT) != 0) {
/* out of memory */ /* out of memory */
qDebug() << __func__ << ": crypto_pwhash failed! Possibly out of memory"; qDebug() << __func__ << ": crypto_pwhash failed! Possibly out of memory";
return; return;
} }
QString passphraseHash1 = QByteArray(reinterpret_cast<const char*>(key), KEY_LEN).toHex(); QString passphraseHash1 = QByteArray(reinterpret_cast<const char*>(key), KEY_LEN).toHex();
DataStore::getChatDataStore()->setPassword(passphraseHash1); DataStore::getChatDataStore()->setPassword(passphraseHash1);
auto dir = QDir(QStandardPaths::writableLocation(QStandardPaths::AppDataLocation)); auto dir = QDir(QStandardPaths::writableLocation(QStandardPaths::AppDataLocation));
QString target_encwallet_file = dirwalletenc; QString target_encwallet_file = dirwalletenc;
QString target_decwallet_file = dirwallet; QString target_decwallet_file = dirwallet;
FileEncryption::decrypt(target_decwallet_file, target_encwallet_file, key); FileEncryption::decrypt(target_decwallet_file, target_encwallet_file, key);
auto dirHome = QDir(QStandardPaths::writableLocation(QStandardPaths::HomeLocation)); auto dirHome = QDir(QStandardPaths::writableLocation(QStandardPaths::HomeLocation));
QFile wallet(dirwallet); QFile wallet(dirwallet);
qDebug() << __func__ << ": wallet size=" << wallet.size(); qDebug() << __func__ << ": wallet size=" << wallet.size();
if (wallet.size() == 0) { if (wallet.size() == 0) {
QMessageBox::critical(this, tr("Wallet Encryption Failed"), QMessageBox::critical(this, tr("Wallet Encryption Failed"),
QString("false password please try again"), QString("false password please try again"),
QMessageBox::Ok QMessageBox::Ok
); );
this->removeWalletEncryptionStartUp(); this->removeWalletEncryptionStartUp();
}else{} }else{}
}else{ }else{
this->doClosePw(); this->doClosePw();

Loading…
Cancel
Save