aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornils <[email protected]>2016-02-07 22:05:22 +0000
committernils <[email protected]>2016-02-07 22:05:22 +0000
commit6e4652597a4ea36cf6bae7ba6dae1dece0916f64 (patch)
tree6f958cf26aaeccecdd17081141275ed0d1a8d6f7
parentadded findwidget (diff)
downloadgpg4usb-6e4652597a4ea36cf6bae7ba6dae1dece0916f64.tar.gz
gpg4usb-6e4652597a4ea36cf6bae7ba6dae1dece0916f64.zip
keygeneration for both rsa and dsa keys
-rw-r--r--keygendialog.cpp43
-rw-r--r--keygendialog.h1
2 files changed, 31 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())) {
diff --git a/keygendialog.h b/keygendialog.h
index 8455387..bc61314 100644
--- a/keygendialog.h
+++ b/keygendialog.h
@@ -61,6 +61,7 @@ private:
QLineEdit *passwordEdit; /** Lineedit for the keys password */
QLineEdit *repeatpwEdit; /** Lineedit for the repetition of the keys password */
QSpinBox *keySizeSpinBox; /** Spinbox for the keys size (in bit) */
+ QComboBox *keyTypeComboBox; /** Combobox for Keytpe */
QDateTimeEdit *dateEdit; /** Dateedit for expiration date */
QCheckBox *expireCheckBox; /** Checkbox, if key should expire */
QSlider *pwStrengthSlider; /** Slider showing the password strength */