diff options
Diffstat (limited to 'keygendialog.cpp')
-rw-r--r-- | keygendialog.cpp | 43 |
1 files changed, 30 insertions, 13 deletions
diff --git a/keygendialog.cpp b/keygendialog.cpp index 1254b78..2aa5f81 100644 --- a/keygendialog.cpp +++ b/keygendialog.cpp @@ -46,6 +46,10 @@ void KeyGenDialog::generateKeyDialog() keySizeSpinBox->setSingleStep(1024); + keyTypeComboBox = new QComboBox(this); + keyTypeComboBox->addItem("RSA"); + keyTypeComboBox->addItem("DSA/Elgamal"); + keyTypeComboBox->setCurrentIndex(0); dateEdit = new QDateEdit(QDate::currentDate().addYears(5), this); dateEdit->setMinimumDate(QDate::currentDate()); dateEdit->setDisplayFormat("dd/MM/yyyy"); @@ -76,9 +80,10 @@ void KeyGenDialog::generateKeyDialog() vbox1->addWidget(new QLabel(tr("Expiration Date:")), 3, 0); vbox1->addWidget(new QLabel(tr("Never Expire")), 3, 3); vbox1->addWidget(new QLabel(tr("KeySize (in Bit):")), 4, 0); - vbox1->addWidget(new QLabel(tr("Password:")), 5, 0); - vbox1->addWidget(new QLabel(tr("Password: Strength\nWeak -> Strong")), 5, 3); - vbox1->addWidget(new QLabel(tr("Repeat Password:")), 6, 0); + vbox1->addWidget(new QLabel(tr("Key Type:")), 5, 0); + vbox1->addWidget(new QLabel(tr("Password:")), 6, 0); + vbox1->addWidget(new QLabel(tr("Password: Strength\nWeak -> Strong")), 6, 3); + vbox1->addWidget(new QLabel(tr("Repeat Password:")), 7, 0); vbox1->addWidget(nameEdit, 0, 1); vbox1->addWidget(emailEdit, 1, 1); @@ -86,9 +91,10 @@ void KeyGenDialog::generateKeyDialog() vbox1->addWidget(dateEdit, 3, 1); vbox1->addWidget(expireCheckBox, 3, 2); vbox1->addWidget(keySizeSpinBox, 4, 1); - vbox1->addWidget(passwordEdit, 5, 1); - vbox1->addWidget(repeatpwEdit, 6, 1); - vbox1->addWidget(pwStrengthSlider, 6, 3); + vbox1->addWidget(keyTypeComboBox,5, 1); + vbox1->addWidget(passwordEdit, 6, 1); + vbox1->addWidget(repeatpwEdit, 7, 1); + vbox1->addWidget(pwStrengthSlider, 7, 3); QWidget *nameList = new QWidget(this); nameList->setLayout(vbox1); @@ -103,6 +109,8 @@ void KeyGenDialog::generateKeyDialog() connect(expireCheckBox, SIGNAL(stateChanged(int)), this, SLOT(slotExpireBoxChanged())); connect(passwordEdit, SIGNAL(textChanged(QString)), this, SLOT(slotPasswordEditChanged())); +// connect(keyTypeComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(slotKeyTypeChanged())); +// connect(keySizeSpinBox, SIGNAL(valueChanged(int)), this, SLOT(slotKeySizeChanged())); this->setLayout(vbox2); } @@ -124,13 +132,22 @@ void KeyGenDialog::slotKeyGenAccept() /** * create the string for key generation */ - keyGenParams = "<GnupgKeyParms format=\"internal\">\n" - "Key-Type: RSA\n" - "Key-Usage: sign\n" - "Key-Length: " + keySizeSpinBox->cleanText() + "\n" - "Subkey-Type: RSA\n" - "Subkey-Length: " + keySizeSpinBox->cleanText() + "\n" - "Subkey-Usage: encrypt\n"; + + if(keyTypeComboBox->currentText() == "RSA") { + keyGenParams = "<GnupgKeyParms format=\"internal\">\n" + "Key-Type: RSA\n" + "Key-Usage: sign\n" + "Key-Length: " + keySizeSpinBox->cleanText() + "\n" + "Subkey-Type: RSA\n" + "Subkey-Length: " + keySizeSpinBox->cleanText() + "\n" + "Subkey-Usage: encrypt\n"; + } else { + keyGenParams = "<GnupgKeyParms format=\"internal\">\n" + "Key-Type: DSA\n" + "Key-Length: " + keySizeSpinBox->cleanText() + "\n" + "Subkey-Type: ELG-E\n" + "Subkey-Length: " + keySizeSpinBox->cleanText() + "\n"; + } keyGenParams += "Name-Real: " + nameEdit->text().toUtf8() + "\n"; if (!(commentEdit->text().isEmpty())) { |