From bf4b9e53cafa54923e41589ec9312a3e6c96ddb6 Mon Sep 17 00:00:00 2001 From: fekt Date: Thu, 3 Nov 2022 12:05:59 -0400 Subject: [PATCH] Revert "Close app on welcome back cancel" This reverts commit 7398c70e2b9f592310e8727f5c9542ccbcb933a9. --- src/mainwindow.cpp | 141 ++++++++++++++++++++++----------------------- 1 file changed, 70 insertions(+), 71 deletions(-) diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index a45257d..51625e0 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -441,9 +441,6 @@ void MainWindow::closeEventpw(QCloseEvent* event) { } else { qDebug() << __func__ << ": invalid rpc object!"; } - - // Close the app - this->close(); } void MainWindow::encryptWallet() { @@ -460,7 +457,7 @@ void MainWindow::encryptWallet() { // Enable the OK button if the passwords match. 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.lblPasswordMatch->setText(""); ed.buttonBox->button(QDialogButtonBox::Ok)->setEnabled(true); @@ -474,12 +471,13 @@ void MainWindow::encryptWallet() { QObject::connect(ed.txtConfirmPassword, &QLineEdit::textChanged, fnPasswordEdited); QObject::connect(ed.txtPassword, &QLineEdit::textChanged, fnPasswordEdited); - 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(); + 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(); + char *sequence = NULL; sequence = new char[length+1]; @@ -492,25 +490,25 @@ void MainWindow::encryptWallet() { sequence1 = new char[length+1]; strncpy(sequence1, passphraseHash.toUtf8(), length+1); -#define MESSAGE ((const unsigned char *) sequence) -#define MESSAGE_LEN length -#define hash ((const unsigned char *) sequence1) + #define MESSAGE ((const unsigned char *) sequence) + #define MESSAGE_LEN length + #define hash ((const unsigned char *) sequence1) -#define PASSWORD sequence -#define KEY_LEN crypto_box_SEEDBYTES + #define PASSWORD sequence + #define KEY_LEN crypto_box_SEEDBYTES unsigned char key[KEY_LEN]; - if (crypto_pwhash(key, sizeof key, PASSWORD, strlen(PASSWORD), hash, - crypto_pwhash_OPSLIMIT_SENSITIVE, crypto_pwhash_MEMLIMIT_SENSITIVE, - crypto_pwhash_ALG_DEFAULT) != 0) { - /* out of memory */ - QMessageBox::information(this, tr("Out of memory!"), - QString("Please close some other programs to free up memory and try again"), - QMessageBox::Ok - ); - qDebug() << __func__ << ": out of memory!"; - exit(1); + if (crypto_pwhash(key, sizeof key, PASSWORD, strlen(PASSWORD), hash, + crypto_pwhash_OPSLIMIT_SENSITIVE, crypto_pwhash_MEMLIMIT_SENSITIVE, + crypto_pwhash_ALG_DEFAULT) != 0) { + /* out of memory */ + QMessageBox::information(this, tr("Out of memory!"), + QString("Please close some other programs to free up memory and try again"), + QMessageBox::Ok + ); + qDebug() << __func__ << ": out of memory!"; + exit(1); } QString passphraseHash1 = QByteArray(reinterpret_cast(key), KEY_LEN).toHex(); DataStore::getChatDataStore()->setPassword(passphraseHash1); @@ -519,16 +517,16 @@ void MainWindow::encryptWallet() { auto dirHome = QDir(QStandardPaths::writableLocation(QStandardPaths::HomeLocation)); QString sourceWallet_file = dirwallet; QString target_encWallet_file = dirwalletenc; - + FileEncryption::encrypt(target_encWallet_file, sourceWallet_file, key); QFile wallet(dirwallet); wallet.rename(dirwalletbackup); - QMessageBox::information(this, tr("Wallet Encryption Success"), - QString("Successfully encrypted your wallet"), - QMessageBox::Ok - ); + QMessageBox::information(this, tr("Wallet Encryption Success"), + QString("Successfully encrypted your wallet"), + QMessageBox::Ok + ); } qDebug() << __func__ << ": finish"; } @@ -633,24 +631,25 @@ void MainWindow::removeWalletEncryption() { void MainWindow::removeWalletEncryptionStartUp() { qDebug() << __func__ << ": removing wallet encryption"; - QDialog d(this); + QDialog d(this); Ui_startup ed; ed.setupUi(&d); - QObject::connect(ed.new_restore, &QPushButton::clicked, [&] { - - d.close(); - QFile wallet(dirwallet); - QFile walletenc(dirwalletenc); + QObject::connect(ed.new_restore, &QPushButton::clicked, [&] { - wallet.remove(); - walletenc.remove(); + d.close(); + QFile wallet(dirwallet); + QFile walletenc(dirwalletenc); - auto cl = new ConnectionLoader(this, rpc); - cl->loadConnection(); - }); + wallet.remove(); + 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 passphrase = QString("HUSH3") + passphraseBlank + QString("SDL"); @@ -667,44 +666,44 @@ void MainWindow::removeWalletEncryptionStartUp() { sequence1 = new char[length+1]; strncpy(sequence1, passphraseHash.toUtf8(), length+1); -#define MESSAGE ((const unsigned char *) sequence) -#define MESSAGE_LEN length -#define hash ((const unsigned char *) sequence1) + #define MESSAGE ((const unsigned char *) sequence) + #define MESSAGE_LEN length + #define hash ((const unsigned char *) sequence1) -#define PASSWORD sequence -#define KEY_LEN crypto_box_SEEDBYTES + #define PASSWORD sequence + #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, - crypto_pwhash_OPSLIMIT_SENSITIVE, crypto_pwhash_MEMLIMIT_SENSITIVE, - crypto_pwhash_ALG_DEFAULT) != 0) { - /* out of memory */ - qDebug() << __func__ << ": crypto_pwhash failed! Possibly out of memory"; - return; - } + if (crypto_pwhash(key, sizeof key, PASSWORD, strlen(PASSWORD), hash, + crypto_pwhash_OPSLIMIT_SENSITIVE, crypto_pwhash_MEMLIMIT_SENSITIVE, + crypto_pwhash_ALG_DEFAULT) != 0) { + /* out of memory */ + qDebug() << __func__ << ": crypto_pwhash failed! Possibly out of memory"; + return; + } - QString passphraseHash1 = QByteArray(reinterpret_cast(key), KEY_LEN).toHex(); - DataStore::getChatDataStore()->setPassword(passphraseHash1); + QString passphraseHash1 = QByteArray(reinterpret_cast(key), KEY_LEN).toHex(); + 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_decwallet_file = dirwallet; + QString target_encwallet_file = dirwalletenc; + 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)); - QFile wallet(dirwallet); - qDebug() << __func__ << ": wallet size=" << wallet.size(); - - if (wallet.size() == 0) { - QMessageBox::critical(this, tr("Wallet Encryption Failed"), - QString("false password please try again"), - QMessageBox::Ok - ); - this->removeWalletEncryptionStartUp(); - }else{} + auto dirHome = QDir(QStandardPaths::writableLocation(QStandardPaths::HomeLocation)); + QFile wallet(dirwallet); + qDebug() << __func__ << ": wallet size=" << wallet.size(); + + if (wallet.size() == 0) { + QMessageBox::critical(this, tr("Wallet Encryption Failed"), + QString("false password please try again"), + QMessageBox::Ok + ); + this->removeWalletEncryptionStartUp(); + }else{} }else{ this->doClosePw();