#include "mainwindow.h" #include "ui_mainwindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); } MainWindow::~MainWindow() { delete ui; } // Button void MainWindow::on_pushButtonDecrypt_clicked() { QString in = ui->lineEditFilePath->text(); QString out = readFilename(tr("Speicher Ort für Entschlüsselte Datei")); if (in.isEmpty()) { QMessageBox::information(this, tr("Kein Datei ausgewählt"), tr("Sie haben keine Datei eingegen die Entschlüsselt werden soll.")); ui->lineEditFilePath->setFocus(); } else { 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()); } } } } void MainWindow::on_pushButtonEncrypt_clicked() { PublicKeyImportDialog publicKeyImport; QString inFilename = ui->lineEditFilePath->text(); // outFile Diaglog findet in PublicKeyImportDialog stat. 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 { QMessageBox::information(this, tr("Keine Datei ausgewählt"), tr("Sie haben Keine Datei ausgewählt. Entschlüsselung hat nicht Statgefunden")); ui->lineEditFilePath->setFocus(); } } void MainWindow::on_pushButtonOpenFile_clicked() { QString fielname = readFilename("Datei öffnen"); ui->lineEditFilePath->setText(fielname); } //Menü Führung void MainWindow::on_actionImport_triggered() { QString filename = readKeyFilename(tr("Importiren eines Schlüsselpaares")); if (!filename.isEmpty()) { QString password = readPassword(); if (!password.isEmpty()) { try { hybridcrypt.importUserKeypair(filename, password); } catch (CryptException e) { QMessageBox::critical(this, tr("Fehler beim Importieren"), e.what()); } } } else { QMessageBox::information(this, tr("Keine Datei ausgewählt"), tr("sie haben Keine Datei ausgewählt Import hat nicht Statgefunden")); } } 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_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)")); 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, QDir::homePath(), tr("Schlüssel Datein")); } QString MainWindow::readFilename(QString titel) { return QFileDialog::getOpenFileName(this, titel, QDir::homePath(), tr("Alle Datein")); } QString MainWindow::readPassword() { PasswordDialog w; if (w.exec()) { return w.getPassword(); } return ""; }