From 8e05c99a599ca51d5aaf92a121d1f68acc07459e Mon Sep 17 00:00:00 2001 From: Stefan Suhren Date: Sat, 19 Sep 2015 02:11:39 +0200 Subject: Verbessere die Dokumentation der Crypt/ Klassen --- crypt/hybridcrypt.h | 63 +++++++++++++++++++++++------------------------------ 1 file changed, 27 insertions(+), 36 deletions(-) (limited to 'crypt/hybridcrypt.h') diff --git a/crypt/hybridcrypt.h b/crypt/hybridcrypt.h index 6cf92df..a9d9dc2 100644 --- a/crypt/hybridcrypt.h +++ b/crypt/hybridcrypt.h @@ -19,70 +19,71 @@ #include "cryptexception.h" +/** + * @brief Eine Klasse die sich um hybride Verschlüsselung mittels RSA und AES kümmert. + */ class HybridCrypt { public: /** - * @brief HybridCrypt::HybridCrypt - * Initialisiert OpenSSL. + * @brief Initialisiert OpenSSL. */ HybridCrypt(); /** - * @brief HybridCrypt::~HybridCrypt - * Räumt OpenSSL auf. + * @brief Räumt OpenSSL auf. */ ~HybridCrypt(); /** - * @brief HybridCrypt::encrypt - * Ließt eine Datei ein und schreibt diese verschlüsselt + * @brief 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 (Sollte nicht den Nutzerschlüssel enthalten). + * @throws CryptException Fehler, die bei der Verschlüsselung auftreten können. */ void encrypt(QString infileName, QString outfileName, QVector recipientKeyfileNames); /** - * @brief HybridCrypt::decrypt - * Entschlüsselt die übergeben Datei mit dem Nutzerschlüssel und schreibt diese entschlüsselt. + * @brief 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). + * @throws CryptException Fehler, die bei der Verschlüsselung auftreten können. */ void decrypt(QString infileName, QString outfileName); /** - * @brief HybridCrypt::createKeypair - * Erzeugt sicher ein neues RSA Schlüsselpaar zur Verwendung in #encrypt und #decrypt. + * @brief Erzeugt sicher ein neues RSA Schlüsselpaar zur Verwendung in #encrypt und #decrypt. * Sollte mittel #exportUserKeypair exportiert werden. + * @throws CryptException Fehler, die bei der Verschlüsselung auftreten können. */ void createKeypair(); /** - * @brief HybridCrypt::importUserKeypair - * Importiert das Schlüsselpaar des Nutzers zur Verwendung in #encrypt und #decrypt. + * @brief 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. + * @throws CryptException Fehler, die bei der Verschlüsselung auftreten können. */ void importUserKeypair(QString keyfileName, QString password); /** - * @brief HybridCrypt::exportUserKeypair - * Exportiert das Schlüsselpaar des Nutzers im (PEM|DER|NET|ASC) Format. + * @brief 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 (wird angelegt/überschrieben). * @param password Das Password mit dem der private Schlüssel des Nutzers verschlüsselt wird. + * @throws CryptException Fehler, die bei der Verschlüsselung auftreten können. */ void exportUserKeypair(QString keyfileName, QString password); /** - * @brief HybridCrypt::exportPublicUserKey - * Exportiert den öffentlichen Schlüssel des Nutzers im (PEM|DER|NET|ASC) Format. + * @brief 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 (wird angelegt/überschrieben). + * @throws CryptException Fehler, die bei der Verschlüsselung auftreten können. */ void exportPublicUserKey(QString keyfileName); @@ -90,8 +91,7 @@ private: EVP_PKEY *userKeypair; // Enthält nur den privaten Schlüssel, da OpenSSL nicht mehr braucht. /** - * @brief encryptAesData - * Verschlüsselt den IV und den Key vom AES mit RSA. + * @brief Verschlüsselt den IV und den Key vom AES mit RSA. * Und nutzt als Padding RSA_OAEP_PADDING. * @param pkey Der EVP_PKEY mit dem Verschlüsselt wird. * @param data Der AES Key und IV. @@ -100,44 +100,38 @@ private: QByteArray encryptAesData(EVP_PKEY *pkey, QByteArray data); /** - * @brief isCsprngSeeded - * Gibt an, ob der Zufallszahlengenerator von OpenSSL mit ausreichend Entropie initialisiert wurde. + * @brief Gibt an, ob der Zufallszahlengenerator von OpenSSL mit ausreichend Entropie initialisiert wurde. * @return Gibt wahr zurück wenn ausreichend intialisert wurde, ansonsten falsch. */ bool isCsprngSeeded(); /** - * @brief getCsprngData - * Holt Zufallsblöcke aus dem Csprng. + * @brief Holt Zufallsblöcke aus dem Csprng. * @param count Die Anzahl der Zufallsbytes die geholt werden sollen. * @return Ein QByteArray mit den Zufallsblöcken. */ QByteArray getCsprngBytes(int count); /** - * @brief isKeyRsa - * Überprüft, ob der Schlüssel vom Typ RSA ist. + * @brief Überprüft, ob der Schlüssel vom Typ RSA ist. * @param key Der Schlüssel, der überprüft wird. * @return Gibt wahr zurück, falls Key vom Typ RSA ist, ansonsten flasch. */ bool isKeyRsa(EVP_PKEY *key); /** - * @brief throwOpenSslException - * Wirft eine CryptException mit dem OpenSSL Fehler. + * @brief Wirft eine CryptException mit dem OpenSSL Fehler. */ void throwOpenSslException(); /** - * @brief throwExceptionIfEvpKeyIsNotRsa - * Wirft eine CryptException, falls der Schlüssel nicht RSA ist. + * @brief Wirft eine CryptException, falls der Schlüssel nicht RSA ist. * @param key Der Pointer, der auf NULL gesetzt wird, nachdem der Schlüssel abgräumt wurde. */ void throwExceptionIfEvpKeyIsNotRsa(EVP_PKEY **key); /** - * @brief throwExceptionIfCsprngIsNotSeeded - * Wirft eine Exception, falls der Zufallszahlengenerator nicht initialisiert wurde. + * @brief Wirft eine Exception, falls der Zufallszahlengenerator nicht initialisiert wurde. */ void throwExceptionIfCsprngIsNotSeeded(); @@ -148,22 +142,19 @@ private: void throwExceptionIfUserKeyIsNull(); /** - * @brief freeEvpKey - * Räumt den Schlüssel hinter key ab. + * @brief Räumt den Schlüssel hinter key ab. * @param key Der Pointer, der auf NULL gesetzt wird. */ void freeEvpKey(EVP_PKEY **key); /** - * @brief freeCipherCtx - * Räumt den Kontext hinter ctx ab. + * @brief Räumt den Kontext hinter ctx ab. * @param ctx Der Pointer, der auf NULL gesetzt wird. */ void freeCipherCtx(EVP_CIPHER_CTX **ctx); /** - * @brief freePkeyCtx - * Räumt den Kontext hinter ctx ab. + * @brief Räumt den Kontext hinter ctx ab. * @param ctx Der Pointer, der auf NULL gesetzt wird. */ void freePkeyCtx(EVP_PKEY_CTX **ctx); -- cgit v1.2.3-70-g09d2