aboutsummaryrefslogtreecommitdiffstats
path: root/keymgmt.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'keymgmt.cpp')
-rwxr-xr-xkeymgmt.cpp208
1 files changed, 2 insertions, 206 deletions
diff --git a/keymgmt.cpp b/keymgmt.cpp
index 602d8b9..6a0b8f3 100755
--- a/keymgmt.cpp
+++ b/keymgmt.cpp
@@ -123,7 +123,6 @@ void KeyMgmt::createMenus()
keyMenu = menuBar()->addMenu(tr("&Key"));
importKeyMenu = keyMenu->addMenu(tr("&Import Key From..."));
-// importKeyMenu->setIcon(QIcon(mIconPath + "key_import.png"));
importKeyMenu->addAction(importKeyFromFileAct);
importKeyMenu->addAction(importKeyFromClipboardAct);
importKeyMenu->addAction(importKeyFromKeyServerAct);
@@ -253,211 +252,8 @@ void KeyMgmt::exportKeyToClipboard()
void KeyMgmt::generateKeyDialog()
{
- QStringList errorMessages;
- genkeyDialog = new QDialog();
- QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
-
- genkeyDialog->setWindowTitle(tr("Generate Key"));
- genkeyDialog->setModal(true);
-
- nameLabel = new QLabel(tr("Name:"));
- emailLabel = new QLabel(tr("E-Mailaddress::"));
- commentLabel = new QLabel(tr("Comment:"));
- keySizeLabel = new QLabel(tr("KeySize (in Bit):"));
- dateLabel = new QLabel(tr("Expiration Date:"));
- passwordLabel = new QLabel(tr("Password:"));
- repeatpwLabel = new QLabel(tr("Repeat Password:"));
- expireLabel = new QLabel(tr("Never Expire"));
- pwStrengthLabel = new QLabel(tr("Password: Strength\nWeak -> Strong"));
- errorLabel = new QLabel(tr(""));
- nameEdit = new QLineEdit(genkeyDialog);
- emailEdit = new QLineEdit(genkeyDialog);
- commentEdit = new QLineEdit(genkeyDialog);
-
- keySizeSpinBox = new QSpinBox(genkeyDialog);
- keySizeSpinBox->setRange(768, 8192);
- keySizeSpinBox->setValue(2048);
-
- keySizeSpinBox->setSingleStep(256);
-
- dateEdit = new QDateEdit(QDate::currentDate().addYears(5), genkeyDialog);
- dateEdit->setMinimumDate(QDate::currentDate());
- dateEdit->setDisplayFormat("dd/MM/yyyy");
- dateEdit->setCalendarPopup(true);
- dateEdit->setEnabled(false);
-
- expireCheckBox = new QCheckBox(genkeyDialog);
- expireCheckBox->setCheckState(Qt::Checked);
-
- passwordEdit = new QLineEdit(genkeyDialog);
- repeatpwEdit = new QLineEdit(genkeyDialog);
-
- passwordEdit->setEchoMode(QLineEdit::Password);
- repeatpwEdit->setEchoMode(QLineEdit::Password);
-
- pwStrengthSlider = new QSlider(genkeyDialog);
- pwStrengthSlider->setOrientation(Qt::Horizontal);
- pwStrengthSlider->setMaximum(6);
- pwStrengthSlider->setDisabled(true);
- pwStrengthSlider->setToolTip(tr("Password Strength"));
- pwStrengthSlider->setTickPosition(QSlider::TicksBelow);
-
- QGridLayout *vbox1 = new QGridLayout;
- vbox1->addWidget(nameLabel, 0, 0);
- vbox1->addWidget(nameEdit, 0, 1);
- vbox1->addWidget(emailLabel, 1, 0);
- vbox1->addWidget(emailEdit, 1, 1);
- vbox1->addWidget(commentLabel, 2, 0);
- vbox1->addWidget(commentEdit, 2, 1);
- vbox1->addWidget(dateLabel, 3, 0);
- vbox1->addWidget(dateEdit, 3, 1);
- vbox1->addWidget(expireCheckBox, 3, 2);
- vbox1->addWidget(expireLabel, 3, 3);
- vbox1->addWidget(keySizeLabel, 4, 0);
- vbox1->addWidget(keySizeSpinBox, 4, 1);
- vbox1->addWidget(passwordLabel, 5, 0);
- vbox1->addWidget(passwordEdit, 5, 1);
- vbox1->addWidget(pwStrengthLabel, 5, 3);
- vbox1->addWidget(repeatpwLabel, 6, 0);
- vbox1->addWidget(repeatpwEdit, 6, 1);
- vbox1->addWidget(pwStrengthSlider, 6, 3);
-
- QWidget *nameList = new QWidget(genkeyDialog);
- nameList->setLayout(vbox1);
-
- QVBoxLayout *vbox2 = new QVBoxLayout();
- vbox2->addWidget(nameList);
- vbox2->addWidget(errorLabel);
- vbox2->addWidget(buttonBox);
-
- connect(buttonBox, SIGNAL(accepted()), this, SLOT(keyGenAccept()));
- connect(buttonBox, SIGNAL(rejected()), genkeyDialog, SLOT(reject()));
-
- connect(expireCheckBox, SIGNAL(stateChanged(int)), this, SLOT(expireBoxChanged()));
- connect(passwordEdit, SIGNAL(textChanged(QString)), this, SLOT(passwordEditChanged()));
- genkeyDialog->setLayout(vbox2);
- genkeyDialog->show();
-
- if (genkeyDialog->exec() == QDialog::Accepted) {
- }
-}
-
-
-void KeyMgmt::keyGenAccept()
-{
- QString errorString = "";
- QString keyGenParams = "";
- /**
- * check for errors in keygen dialog input
- */
- if ((nameEdit->text()).size() < 5) {
- errorString.append(tr(" Name must contain at least five characters. \n"));
- }
- if (passwordEdit->text() != repeatpwEdit->text()) {
- errorString.append(tr(" Password and Repeat don't match. "));
- }
-
- if (errorString.isEmpty()) {
- /**
- * create the string for key generation
- */
- keyGenParams = "<GnupgKeyParms format=\"internal\">\n"
- "Key-Type: DSA\n"
- "Key-Length: 1024\n"
- "Subkey-Type: ELG-E\n"
- "Subkey-Length: "
- + keySizeSpinBox->cleanText() + "\n"
- "Name-Real: " + nameEdit->text() + "\n";
- if (!(commentEdit->text().isEmpty())) {
- keyGenParams += "Name-Comment: " + commentEdit->text() + "\n";
- }
- if (!(emailEdit->text().isEmpty())) {
- keyGenParams += "Name-Email: " + emailEdit->text() + "\n";
- }
- if (expireCheckBox->checkState()) {
- keyGenParams += "Expire-Date: 0\n";
- } else {
- keyGenParams += "Expire-Date: " + dateEdit->sectionText(QDateTimeEdit::YearSection) + "-" + dateEdit->sectionText(QDateTimeEdit::MonthSection) + "-" + dateEdit->sectionText(QDateTimeEdit::DaySection) + "\n";
- }
- if (!(passwordEdit->text().isEmpty())) {
- keyGenParams += "Passphrase: " + passwordEdit->text() + "\n";
- }
- keyGenParams += "</GnupgKeyParms>";
-
- KeyGenThread *kg = new KeyGenThread(keyGenParams, mCtx);
- kg->start();
-
- genkeyDialog->accept();
-
- QDialog *dialog = new QDialog(this, Qt::CustomizeWindowHint | Qt::WindowTitleHint);
- dialog->setModal(true);
- dialog->setWindowTitle(tr("Generating Key..."));
-
- QLabel *waitMessage = new QLabel(tr("Collecting random data for key generation.\n This may take a while.\n To speed up the process use your computer\n (e.g. browse the net, listen to music,...)"));
- QProgressBar *pb = new QProgressBar();
- pb->setRange(0, 0);
-
- QVBoxLayout *layout = new QVBoxLayout(dialog);
- layout->addWidget(waitMessage);
- layout->addWidget(pb);
- dialog->setLayout(layout);
-
- dialog->show();
-
- while (kg->isRunning()) {
- QCoreApplication::processEvents();
- }
-
- dialog->close();
- } else {
- /**
- * create error message
- */
- errorLabel->setAutoFillBackground(true);
- QPalette error = errorLabel->palette();
- error.setColor(QPalette::Background, "#ff8080");
- errorLabel->setPalette(error);
- errorLabel->setText(errorString);
-
- genkeyDialog->show();
- }
-}
-
-void KeyMgmt::expireBoxChanged()
-{
- if (expireCheckBox->checkState()) {
- dateEdit->setEnabled(false);
- } else {
- dateEdit->setEnabled(true);
- }
-}
-
-void KeyMgmt::passwordEditChanged()
-{
- pwStrengthSlider->setValue(checkPassWordStrength());
- update();
-}
-
-int KeyMgmt::checkPassWordStrength()
-{
- int strength = 0;
- if ((passwordEdit->text()).length() > 7) {
- strength = strength + 2;
- }
- if ((passwordEdit->text()).contains(QRegExp("\\d"))) {
- strength++;
- }
- if ((passwordEdit->text()).contains(QRegExp("[a-z]"))) {
- strength++;
- }
- if ((passwordEdit->text()).contains(QRegExp("[A-Z]"))) {
- strength++;
- }
- if ((passwordEdit->text()).contains(QRegExp("\\W"))) {
- strength++;
- }
-
- return strength;
+ KeyGenDialog *keyGenDialog = new KeyGenDialog(mCtx,this);
+ keyGenDialog->show();
}
void KeyMgmt::closeEvent(QCloseEvent *event)