aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornils <nils@34ebc366-c3a9-4b3c-9f84-69acf7962910>2012-03-08 02:15:33 +0000
committernils <nils@34ebc366-c3a9-4b3c-9f84-69acf7962910>2012-03-08 02:15:33 +0000
commit2e43e3e7de64f63bd570c6349b37c64c3e22c51e (patch)
treebb7f53a3c18ab069e942d9a22fdd74f7a33cd799
parentfixed minor cosmetic effects (diff)
downloadgpg4usb-2e43e3e7de64f63bd570c6349b37c64c3e22c51e.tar.gz
gpg4usb-2e43e3e7de64f63bd570c6349b37c64c3e22c51e.zip
added rsa key generation
git-svn-id: http://cpunk.de/svn/src/gpg4usb/trunk@853 34ebc366-c3a9-4b3c-9f84-69acf7962910
-rw-r--r--keygendialog.cpp45
-rw-r--r--keygendialog.h2
2 files changed, 32 insertions, 15 deletions
diff --git a/keygendialog.cpp b/keygendialog.cpp
index 778f24c..532afe7 100644
--- a/keygendialog.cpp
+++ b/keygendialog.cpp
@@ -41,11 +41,15 @@ void KeyGenDialog::generateKeyDialog()
commentEdit = new QLineEdit(this);
keySizeSpinBox = new QSpinBox(this);
- keySizeSpinBox->setRange(768, 8192);
+ keySizeSpinBox->setRange(768, 65536);
keySizeSpinBox->setValue(2048);
keySizeSpinBox->setSingleStep(256);
+ keyTypeComboBox = new QComboBox(this);
+ keyTypeComboBox->addItem("DSA/Elgamal");
+ keyTypeComboBox->addItem("RSA");
+ 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);
@@ -124,13 +130,24 @@ void KeyGenDialog::keyGenAccept()
/**
* 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 (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: 1024\n"
+ "Subkey-Type: ELG-E\n"
+ "Subkey-Length: "
+ + keySizeSpinBox->cleanText() + "\n";
+ }
+ keyGenParams += "Name-Real: " + nameEdit->text() + "\n";
if (!(commentEdit->text().isEmpty())) {
keyGenParams += "Name-Comment: " + commentEdit->text() + "\n";
}
diff --git a/keygendialog.h b/keygendialog.h
index f2de274..69495c9 100644
--- a/keygendialog.h
+++ b/keygendialog.h
@@ -61,10 +61,10 @@ 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 */
-
private slots:
/**
* @details when expirebox was checked/unchecked, enable/disable the expiration date box