summaryrefslogtreecommitdiffstats
path: root/crypt/hybridcrypt.h
diff options
context:
space:
mode:
Diffstat (limited to 'crypt/hybridcrypt.h')
-rw-r--r--crypt/hybridcrypt.h15
1 files changed, 12 insertions, 3 deletions
diff --git a/crypt/hybridcrypt.h b/crypt/hybridcrypt.h
index ed691d2..8b1e022 100644
--- a/crypt/hybridcrypt.h
+++ b/crypt/hybridcrypt.h
@@ -1,6 +1,8 @@
#ifndef HYBRIDCRYPT_H
#define HYBRIDCRYPT_H
+#include <cstdio>
+
#include <QByteArray>
#include <QFile>
#include <QString>
@@ -10,6 +12,7 @@
#include <openssl/conf.h>
#include <openssl/evp.h>
#include <openssl/err.h>
+#include <openssl/pem.h>
#include <openssl/rand.h>
#include <openssl/rsa.h>
@@ -67,7 +70,7 @@ public:
/**
* @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 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.
*/
void exportUserKeypair(QString keyfileName, QString password);
@@ -76,12 +79,12 @@ public:
/**
* @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.
+ * @param keyfileName Der Name der Datei in den der öffentliche Schlüssel exportiert wird (wird angelegt/überschrieben).
*/
void exportPublicUserKey(QString keyfileName);
private:
- EVP_PKEY *userKeypair;
+ EVP_PKEY *userKeypair; // Enthält nur den privaten Schlüssel, da OpenSSL nicht mehr braucht.
/**
* @brief isCsprngSeeded
@@ -95,6 +98,12 @@ private:
* Wirft eine Exception mit dem OpenSSL Fehler.
*/
void throwOpenSslException();
+
+ /**
+ * @brief freeKeyIfNotNull
+ * Gibt den Speicher vom Nutzerschlüssel frei, falls er existiert.
+ */
+ void freeKeyIfNotNull();
};
#endif // HYBRIDCRYPT_H