diff options
| -rw-r--r-- | mainwindow.cpp | 156 | ||||
| -rw-r--r-- | mainwindow.h | 7 | ||||
| -rw-r--r-- | mainwindow.ui | 8 | ||||
| -rw-r--r-- | publickeyimportdialog.cpp | 4 | ||||
| -rw-r--r-- | publickeyimportdialog.h | 2 |
5 files changed, 144 insertions, 33 deletions
diff --git a/mainwindow.cpp b/mainwindow.cpp index 01a5dcd..7df9bbe 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -13,6 +13,7 @@ MainWindow::~MainWindow() delete ui; } +// Button void MainWindow::on_pushButtonDecrypt_clicked() { @@ -25,16 +26,24 @@ void MainWindow::on_pushButtonDecrypt_clicked() tr("Sie haben keine Datei eingegen die Entschlüsselt werden soll.")); ui->lineEditFilePath->setFocus(); } - - if (in.isEmpty()) - { - QMessageBox::warning(this, tr("Keine Seicherort ausgefählt"), - tr("Sie haben keine Speicherort für die Entschlüsselte Datei eingegeben.")); - } - - if (!in.isEmpty() && !out.isEmpty()) + else { - hybridcrypt.decrypt(in, out); + if (in.isEmpty()) + { + QMessageBox::warning(this, tr("Keine Seicherort ausgefählt"), + tr("Sie haben keine Speicherort für die Entschlüsselte Datei eingegeben.")); + } + else + { + try + { + hybridcrypt.decrypt(in, out); + } + catch (CryptException e) + { + QMessageBox::critical(this, tr("Fehler beim Entschlüsseln"), e.what()); + } + } } } @@ -43,12 +52,30 @@ void MainWindow::on_pushButtonEncrypt_clicked() { PublicKeyImportDialog publicKeyImport; - QString filename = ui->lineEditFilePath->text(); + QString inFilename = ui->lineEditFilePath->text(); - if (publicKeyImport.exec() && !fielname.isEmpty()) + // outFile Diaglog findet in PublicKeyImportDialog stat. + + if (!inFilename.isEmpty()) { - hybridcrypt.encrypt(filename, publicKeyImport.getOutFileName(), - publicKeyImport.getFielListPublicKey()); + if (publicKeyImport.exec()) + { + try + { + hybridcrypt.encrypt(inFilename, publicKeyImport.getOutFileName(), + publicKeyImport.getFielListPublicKey()); + } + catch (CryptException e) + { + QMessageBox::critical(this, tr("Fehler beim Verschlüsselen"), e.what()); + } + } + } + else + { + QMessageBox::information(this, tr("Keine Datei ausgewählt"), + tr("Sie haben Keine Datei ausgewählt. Entschlüsselung hat nicht Statgefunden")); + ui->lineEditFilePath->setFocus(); } } @@ -57,21 +84,29 @@ void MainWindow::on_pushButtonOpenFile_clicked() { QString fielname = readFilename("Datei öffnen"); ui->lineEditFilePath->setText(fielname); - qDebug() << fielname; - } +//Menü Führung void MainWindow::on_actionImport_triggered() { QString filename = readKeyFilename(tr("Importiren eines Schlüsselpaares")); - qDebug() << filename; - if (!filename.isEmpty()) { QString password = readPassword(); - hybridcrypt.importUserKeypair(filename, password); + + if (!password.isEmpty()) + { + try + { + hybridcrypt.importUserKeypair(filename, password); + } + catch (CryptException e) + { + QMessageBox::critical(this, tr("Fehler beim Importieren"), e.what()); + } + } } else { @@ -81,20 +116,94 @@ void MainWindow::on_actionImport_triggered() } +void MainWindow::on_actionExportMyKeypair_triggered() +{ + qDebug() << "on_actionExportMyKeypair_triggered"; + if (hybridcrypt.isUserKeyInitialised()) + { + QString expoKeyFileName = QFileDialog::getSaveFileName(this, + tr("Export Datei für den Schlüssel"), + QDir::homePath(), tr("Schlüssel Dateien (*.pem)")); + PasswordDialog pwd; -void MainWindow::on_actionClose_triggered() -{ - close(); + if (!expoKeyFileName.isEmpty()) + { + if (pwd.exec()) + { + try + { + hybridcrypt.exportUserKeypair(expoKeyFileName, pwd.getPassword()); + } + catch (CryptException e) + { + QMessageBox::critical(this, tr("Fehler beim Exportieren"), e.what()); + } + } + } + else + { + QMessageBox::warning(this, tr("Keine Schlüsseldatei ausgewählt"), + tr("Sie haben keine Ziehlort für die Datei aus gewählt. Exportiren wurden icht durchgeführt.")); + } + } } + void MainWindow::on_actionExportMyPublicKey_triggered() { + qDebug() << "on_actionExportMyPublicKey_triggered"; + + if (hybridcrypt.isUserKeyInitialised()) + { + QString expoKeyFileName = QFileDialog::getSaveFileName(this, + tr("Export Datei für den Schlüssel"), + QDir::homePath(), tr("Schlüssel Dateien (*.pem *.der *.asc)")); - hybridcrypt.exportPublicUserKey( - readKeyFilename("Export Datei für den Schlüssel")); + if (!expoKeyFileName.isEmpty()) + { + try + { + hybridcrypt.exportPublicUserKey(expoKeyFileName); + } + catch (CryptException e) + { + QMessageBox::critical(this, tr("Fehler beim Exportieren"), e.what()); + } + } + else + { + QMessageBox::warning(this, tr("Keine Schlüsseldatei ausgewählt"), + tr("Sie haben keine Ziehlort für die Datei aus gewählt. Exportiren wurden icht durchgeführt.")); + } + } } +void MainWindow::on_actionCreateKeypair_triggered() +{ + qDebug() << "on_actionCreateKeypair_triggered"; + + try + { + hybridcrypt.createKeypair(); + + QMessageBox::information(this, tr("Erzuegen war erfolgreich"), + tr("Erzeugen des Schlüssels war erfolgreich.")); + } + catch (CryptException e) + { + QMessageBox::critical(this, tr("Fehler beim Erzeugen"), e.what()); + } + +} + +void MainWindow::on_actionClose_triggered() +{ + close(); +} + +//Private Funksionen + QString MainWindow::readKeyFilename(QString titel) { return QFileDialog::getOpenFileName(this, titel, @@ -111,7 +220,6 @@ QString MainWindow::readPassword() { PasswordDialog w; - if (w.exec()) { return w.getPassword(); diff --git a/mainwindow.h b/mainwindow.h index 8607f25..b23db08 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -30,11 +30,14 @@ private slots: void on_pushButtonOpenFile_clicked(); - void on_actionImport_triggered(); + void on_actionClose_triggered(); + void on_actionCreateKeypair_triggered(); - void on_actionClose_triggered(); + void on_actionImport_triggered(); + + void on_actionExportMyKeypair_triggered(); void on_actionExportMyPublicKey_triggered(); diff --git a/mainwindow.ui b/mainwindow.ui index 682319c..c51c77c 100644 --- a/mainwindow.ui +++ b/mainwindow.ui @@ -123,9 +123,9 @@ <property name="title"> <string>Eige&nen Schlüssel verwalten</string> </property> - <addaction name="actionCreateKeypar"/> + <addaction name="actionCreateKeypair"/> <addaction name="actionImport"/> - <addaction name="actionExportMyKeypar"/> + <addaction name="actionExportMyKeypair"/> <addaction name="actionExportMyPublicKey"/> </widget> <addaction name="menuDatei"/> @@ -146,12 +146,12 @@ <string>Exportiere &öffentlichen Schlüssel</string> </property> </action> - <action name="actionExportMyKeypar"> + <action name="actionExportMyKeypair"> <property name="text"> <string>Exportiere &Schlüsselpaar</string> </property> </action> - <action name="actionCreateKeypar"> + <action name="actionCreateKeypair"> <property name="text"> <string>&Erzeuge Schlüsselpaar</string> </property> diff --git a/publickeyimportdialog.cpp b/publickeyimportdialog.cpp index 03f15d1..9e75396 100644 --- a/publickeyimportdialog.cpp +++ b/publickeyimportdialog.cpp @@ -44,7 +44,7 @@ void PublicKeyImportDialog::on_pushButtonAdd_clicked() QString temp = QFileDialog::getOpenFileName(this, tr("Öffentlichen Schlüssel von Empfänger laden"), - "/home", tr("Schlüssel Dateien (*.net *.der *.pem *.asc)")); + QDir::homePath(), tr("Schlüssel Dateien (*.pem *.der )")); m_FileListPublicKey.append(temp); @@ -59,7 +59,7 @@ void PublicKeyImportDialog::accept() QDialog::accept(); } -QString PublicKeyImportDialog::getFileName() const +QString PublicKeyImportDialog::getOutFileName() const { return m_FileName; } diff --git a/publickeyimportdialog.h b/publickeyimportdialog.h index b615223..c6014cc 100644 --- a/publickeyimportdialog.h +++ b/publickeyimportdialog.h @@ -37,7 +37,7 @@ public: * @brief gibt den Filenamen zurück. * @return Den Filename in den die Datei geschreiben werden soll. */ - QString getFileName() const; + QString getOutFileName() const; private slots: /** |
