summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mainwindow.cpp156
-rw-r--r--mainwindow.h7
-rw-r--r--mainwindow.ui8
-rw-r--r--publickeyimportdialog.cpp4
-rw-r--r--publickeyimportdialog.h2
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&amp;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 &amp;öffentlichen Schlüssel</string>
</property>
</action>
- <action name="actionExportMyKeypar">
+ <action name="actionExportMyKeypair">
<property name="text">
<string>Exportiere &amp;Schlüsselpaar</string>
</property>
</action>
- <action name="actionCreateKeypar">
+ <action name="actionCreateKeypair">
<property name="text">
<string>&amp;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:
/**