diff options
author | Saturn&Eric <[email protected]> | 2023-03-31 21:27:08 +0000 |
---|---|---|
committer | GitHub <[email protected]> | 2023-03-31 21:27:08 +0000 |
commit | 3cb863592a548edc074dde045493e0f83e5d694a (patch) | |
tree | 242534c257e723f49080428db22118c75706e233 /src/ui/dialog/key_generate/SubkeyGenerateDialog.cpp | |
parent | Merge pull request #91 from saturneric/dev/2.0.10/main (diff) | |
parent | feat: add project security document (diff) | |
download | GpgFrontend-2.1.0.tar.gz GpgFrontend-2.1.0.zip |
Merge pull request #93 from saturneric/dev/2.0.10/mainv2.1.0
Develop 2.1.0.2
Diffstat (limited to 'src/ui/dialog/key_generate/SubkeyGenerateDialog.cpp')
-rw-r--r-- | src/ui/dialog/key_generate/SubkeyGenerateDialog.cpp | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/src/ui/dialog/key_generate/SubkeyGenerateDialog.cpp b/src/ui/dialog/key_generate/SubkeyGenerateDialog.cpp index 50f38413..f4263962 100644 --- a/src/ui/dialog/key_generate/SubkeyGenerateDialog.cpp +++ b/src/ui/dialog/key_generate/SubkeyGenerateDialog.cpp @@ -52,6 +52,16 @@ SubkeyGenerateDialog::SubkeyGenerateDialog(const KeyId& key_id, QWidget* parent) SPDLOG_ERROR("setting operation error: longer_expiration_date"); } + bool use_pinentry_as_password_input_dialog = false; + try { + use_pinentry_as_password_input_dialog = + settings.lookup("general.use_pinentry_as_password_input_dialog"); + } catch (...) { + SPDLOG_ERROR( + "setting operation error: use_pinentry_as_password_input_dialog"); + } + use_pinentry_ = use_pinentry_as_password_input_dialog; + max_date_time_ = longer_expiration_date ? QDateTime::currentDateTime().toLocalTime().addYears(30) : QDateTime::currentDateTime().toLocalTime().addYears(2); @@ -148,20 +158,24 @@ QGroupBox* SubkeyGenerateDialog::create_basic_info_group_box() { expire_check_box_ = new QCheckBox(this); expire_check_box_->setCheckState(Qt::Unchecked); + passphrase_edit_->setEchoMode(QLineEdit::Password); + passphrase_edit_->setHidden(use_pinentry_); + auto* vbox1 = new QGridLayout; vbox1->addWidget(new QLabel(QString(_("Key Type")) + ": "), 0, 0); vbox1->addWidget(new QLabel(QString(_("KeySize (in Bit)")) + ": "), 1, 0); vbox1->addWidget(new QLabel(QString(_("Expiration Date")) + ": "), 2, 0); vbox1->addWidget(new QLabel(QString(_("Never Expire"))), 2, 3); - vbox1->addWidget(new QLabel(QString(_("Password")) + ": "), 3, 0); + if (!use_pinentry_) + vbox1->addWidget(new QLabel(QString(_("Password")) + ": "), 3, 0); vbox1->addWidget(new QLabel(QString(_("Non Pass Phrase"))), 3, 3); vbox1->addWidget(key_type_combo_box_, 0, 1); vbox1->addWidget(key_size_spin_box_, 1, 1); vbox1->addWidget(date_edit_, 2, 1); vbox1->addWidget(expire_check_box_, 2, 2); - vbox1->addWidget(passphrase_edit_, 3, 1); + if (!use_pinentry_) vbox1->addWidget(passphrase_edit_, 3, 1); vbox1->addWidget(no_pass_phrase_check_box_, 3, 2); auto basicInfoGroupBox = new QGroupBox(); @@ -265,7 +279,8 @@ void SubkeyGenerateDialog::slot_key_gen_accept() { err_stream << " " << _("Expiration time no more than 2 years.") << " "; } - if (passphrase_edit_->isEnabled() && passphrase_edit_->text().size() == 0) { + if (!use_pinentry_ && passphrase_edit_->isEnabled() && + passphrase_edit_->text().size() == 0) { err_stream << " " << _("Password is empty.") << std::endl; } @@ -286,7 +301,7 @@ void SubkeyGenerateDialog::slot_key_gen_accept() { #endif } - if (!gen_key_info_->IsNoPassPhrase()) { + if (!use_pinentry_ && !gen_key_info_->IsNoPassPhrase()) { CoreCommonUtil::GetInstance()->SetTempCacheValue( "__key_passphrase", this->passphrase_edit_->text().toStdString()); } @@ -307,12 +322,12 @@ void SubkeyGenerateDialog::slot_key_gen_accept() { } waiting_dialog->close(); - if (!gen_key_info_->IsNoPassPhrase()) { + if (!use_pinentry_ && !gen_key_info_->IsNoPassPhrase()) { CoreCommonUtil::GetInstance()->ResetTempCacheValue("__key_passphrase"); } if (check_gpg_error_2_err_code(error) == GPG_ERR_NO_ERROR) { - auto* msg_box = new QMessageBox((QWidget*)this->parent()); + auto* msg_box = new QMessageBox(qobject_cast<QWidget*>(this->parent())); msg_box->setAttribute(Qt::WA_DeleteOnClose); msg_box->setStandardButtons(QMessageBox::Ok); msg_box->setWindowTitle(_("Success")); |