#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; if (hybridcrypt.isUserKeyInitialised()) { 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 { out = QFileDialog::getSaveFileName(this, tr("Speicherort für Entschlüsseltedatei"), QDir::homePath(), tr("Alle Dateien")); if (out.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()); } } } } else { QMessageBox::information(this, tr("Kein Schlüssel Importirt"), tr("Bitte Importiren Sie ihr Schlüsselpaar")); // Versuche ein Schlüssel zu Importiren. on_actionImport_triggered(); // wenn das erfolgreich war versuche erneut zu entschlüsseln. if (hybridcrypt.isUserKeyInitialised()) { on_pushButtonDecrypt_clicked(); } } } 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 = QFileDialog::getOpenFileName(this, tr("Datei Öffnen"), QDir::homePath(), tr("Alle Datein")); ui->lineEditFilePath->setText(fielname); } //Menü Führung void MainWindow::on_actionImport_triggered() { // nur für pem und der QString filename = QFileDialog::getOpenFileName(this, tr("Schlüssel Datei für Import."), QDir::homePath(), tr("Schlüssel Datei (*.pem *.der)")); if (!filename.isEmpty()) { PasswordDialog pwd; pwd.exec(); try { hybridcrypt.importUserKeypair(filename, pwd.getPassword()); } 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() { 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()) { 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() { 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(); }