diff options
| author | Stefan Suhren <suhren.stefan@fh-swf.de> | 2015-09-02 17:31:25 +0200 |
|---|---|---|
| committer | Stefan Suhren <suhren.stefan@fh-swf.de> | 2015-09-02 17:31:25 +0200 |
| commit | 96aa529561d6eaf3227e1f9764e5bb8ae5fafead (patch) | |
| tree | 9331476d3bbbfa65015ce53cb376497c9309fdc2 | |
| parent | c7c3427454cb9f94c3e934ec0497c21c2e4576c2 (diff) | |
| download | src-96aa529561d6eaf3227e1f9764e5bb8ae5fafead.tar.gz src-96aa529561d6eaf3227e1f9764e5bb8ae5fafead.zip | |
Füge die HybridCrypt Klasse hinzu und dokumentiere diese
| -rw-r--r-- | CryptLog.pro | 6 | ||||
| -rw-r--r-- | crypt/hybridcrypt.cpp | 38 | ||||
| -rw-r--r-- | crypt/hybridcrypt.h | 75 |
3 files changed, 117 insertions, 2 deletions
diff --git a/CryptLog.pro b/CryptLog.pro index 158f480..eaa7502 100644 --- a/CryptLog.pro +++ b/CryptLog.pro @@ -15,11 +15,13 @@ TEMPLATE = app SOURCES += main.cpp\ mainwindow.cpp \ passworddialog.cpp \ - publickeyimport.cpp + publickeyimport.cpp \ + crypt/hybridcrypt.cpp HEADERS += mainwindow.h \ passworddialog.h \ - publickeyimport.h + publickeyimport.h \ + crypt/hybridcrypt.h FORMS += mainwindow.ui \ passworddialog.ui \ diff --git a/crypt/hybridcrypt.cpp b/crypt/hybridcrypt.cpp new file mode 100644 index 0000000..199c513 --- /dev/null +++ b/crypt/hybridcrypt.cpp @@ -0,0 +1,38 @@ +#include "hybridcrypt.h" + +HybridCrypt::HybridCrypt() +{ + +} + +void HybridCrypt::encrypt(QString infileName, QString outfileName, + QVector<QString> recipientKeyfileNames) +{ + +} + +void HybridCrypt::decrypt(QString infileName, QString outfileName) +{ + +} + +void HybridCrypt::createKeypair() +{ + +} + +void HybridCrypt::importUserKeypair(QString keyfileName, QString password) +{ + +} + +void HybridCrypt::exportUserKeypair(QString keyfileName, QString password) +{ + +} + +void HybridCrypt::exportPublicUserKey(QString keyfileName) +{ + +} + diff --git a/crypt/hybridcrypt.h b/crypt/hybridcrypt.h new file mode 100644 index 0000000..d2a3b34 --- /dev/null +++ b/crypt/hybridcrypt.h @@ -0,0 +1,75 @@ +#ifndef HYBRIDCRYPT_H +#define HYBRIDCRYPT_H + +#include <QByteArray> +#include <QFile> +#include <QString> +#include <QVector> + +#include <openssl/evp.h> + +class HybridCrypt +{ +public: + + /** + * @brief HybridCrypt::HybridCrypt + * Initialisiert den CSPRNG von OpenSSL mittels /dev/random. + */ + HybridCrypt(); + + /** + * @brief HybridCrypt::encrypt + * Ließt eine Datei ein und schreibt diese verschlüsselt + * mit den übergebenen Schlüsseln und dem Nutzerschlüssel. + * @param infileName Der Name der zu verschlüsselnde Datei. + * @param outfileName Der Name der verschlüsselten Datei (wird angelegt/überschrieben). + * @param recipientKeyfileNames Die Schlüssel der empfänger, mit denen die Datei verschlüsselt wird. + */ + void encrypt(QString infileName, QString outfileName, QVector<QString> recipientKeyfileNames); + + /** + * @brief HybridCrypt::decrypt + * Entschlüsselt die übergeben Datei mit dem Nutzerschlüssel und schreibt diese entschlüsselt. + * @param infileName Der Name der zu entschlüsselnden Datei. + * @param outfileName Der Name der entschlüsselten Datei (wird angelegt/überschrieben). + */ + void decrypt(QString infileName, QString outfileName); + + /** + * @brief HybridCrypt::createKeypair + * Erzeugt sicher ein neues RSA Schlüsselpaar zur Verwendung in #encrypt und #decrypt. + * Sollte mittel #exportUserKeypair exportiert werden. + */ + void createKeypair(); + + /** + * @brief HybridCrypt::importUserKeypair + * Importiert das Schlüsselpaar des Nutzers zur Verwendung in #encrypt und #decrypt. + * @param keyfileName Der Name der Schlüsseldatei im (PEM|DER|NET|ASC) Format, die importiert werden soll. + * @param password Das Password mit dem der private Schlüssel in der Datei verschlüsselt ist. + */ + void importUserKeypair(QString keyfileName, QString password); + + /** + * @brief HybridCrypt::exportUserKeypair + * Exportiert das Schlüsselpaar des Nutzers im (PEM|DER|NET|ASC) Format. + * @param keyfileName Der Name der Datei in die das Schlüsselpaar exportiert wird. + * @param password Das Password mit dem der private Schlüssel des Nutzers verschlüsselt wird. + */ + void exportUserKeypair(QString keyfileName, QString password); + + + /** + * @brief HybridCrypt::exportPublicUserKey + * Exportiert den öffentlichen Schlüssel des Nutzers im (PEM|DER|NET|ASC) Format. + * @param keyfileName Der Name der Datei in den der öffentliche Schlüssel exportiert wird. + */ + void exportPublicUserKey(QString keyfileName); + +private: + EVP_PKEY privateUserkey; + EVP_PKEY publicUserkey; +}; + +#endif // HYBRIDCRYPT_H |
