From 5e3a2b3c451240415a6472fab05de0e4a2f232e1 Mon Sep 17 00:00:00 2001 From: Martin Talarczyk Date: Tue, 29 Sep 2015 22:35:19 +0200 Subject: Fange Fehler ab, Korigiere Rechtschreibfehler MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit *try catch blöcke eingefügt. *Rechtschreib fehler auf Gui koriegirt. --- mainwindow.cpp | 156 +++++++++++++++++++++++++++++++++++++++------- mainwindow.h | 7 ++- mainwindow.ui | 8 +-- publickeyimportdialog.cpp | 4 +- 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(); + + // outFile Diaglog findet in PublicKeyImportDialog stat. - if (publicKeyImport.exec() && !fielname.isEmpty()) + if (!inFilename.isEmpty()) + { + 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 { - hybridcrypt.encrypt(filename, publicKeyImport.getOutFileName(), - publicKeyImport.getFielListPublicKey()); + 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; + + 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_actionClose_triggered() + +void MainWindow::on_actionExportMyPublicKey_triggered() { - close(); + 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)")); + + 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_actionExportMyPublicKey_triggered() +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()); + } + +} - hybridcrypt.exportPublicUserKey( - readKeyFilename("Export Datei für den Schlüssel")); +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 @@ Eige&nen Schlüssel verwalten - + - + @@ -146,12 +146,12 @@ Exportiere &öffentlichen Schlüssel - + Exportiere &Schlüsselpaar - + &Erzeuge Schlüsselpaar 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: /** -- cgit v1.2.3-70-g09d2