summaryrefslogtreecommitdiffstats
path: root/crypt/hybridcrypt.h
diff options
context:
space:
mode:
authorStefan Suhren <suhren.stefan@fh-swf.de>2015-09-21 20:38:56 +0200
committerStefan Suhren <suhren.stefan@fh-swf.de>2015-09-21 20:44:17 +0200
commitf57cfd7285dca6dfd16ceec22332436cee3de9cd (patch)
treeaf3362463c5dca7d8e5530a95534b7bc1924f056 /crypt/hybridcrypt.h
parentc69cbcc54549f1733eefd8c275d083c6fa44cc26 (diff)
downloadsrc-f57cfd7285dca6dfd16ceec22332436cee3de9cd.tar.gz
src-f57cfd7285dca6dfd16ceec22332436cee3de9cd.zip
Nutze DER und zeige Nutzerschlüsselstatus
Der Im/Export von bzw. in DER funktioniert. Außerdem kann nun von außen überprüft werden, ob ein Nutzerschlüssel angelegt bzw. importiert wurde. Werfe einen Fehler, falls ein Nutzerschlüssel nicht vom Typ RSA ist.
Diffstat (limited to 'crypt/hybridcrypt.h')
-rw-r--r--crypt/hybridcrypt.h15
1 files changed, 14 insertions, 1 deletions
diff --git a/crypt/hybridcrypt.h b/crypt/hybridcrypt.h
index d0c7202..fd0d515 100644
--- a/crypt/hybridcrypt.h
+++ b/crypt/hybridcrypt.h
@@ -72,7 +72,7 @@ public:
void importUserKeypair(QString keyfileName, QString password);
/**
- * @brief Exportiert das Schlüsselpaar des Nutzers im (PEM|DER|NET|ASC) Format.
+ * @brief Exportiert das Schlüsselpaar des Nutzers im PEM-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.
@@ -87,6 +87,12 @@ public:
*/
void exportPublicUserKey(QString keyfileName);
+ /**
+ * @brief Gibt an, ob eine Nutzerschlüssel bereits importiert/erzeugt wurde.
+ * @return Wahr, falls ein Nutzerschlüssel existiert, ansonsten falsch.
+ */
+ bool isUserKeyInitialised();
+
private:
EVP_PKEY *userKeypair; // Enthält nur den privaten Schlüssel, da OpenSSL nicht mehr braucht.
@@ -109,6 +115,13 @@ private:
QByteArray decryptAesData(EVP_PKEY *pkey, QByteArray data);
/**
+ * @brief Ließt einen Empfängerschlüssel aus einer Datei ein.
+ * @param keyfileName Der Dateiname aus dem der öffentliche Schlüssel gelsen wird.
+ * @return Der EVP_PKEY für OpenSSL.
+ */
+ EVP_PKEY *readRecipientKey(QString keyfileName);
+
+ /**
* @brief Gibt an, ob der Zufallszahlengenerator von OpenSSL mit ausreichend Entropie initialisiert wurde.
* @return Gibt wahr zurück wenn ausreichend intialisert wurde, ansonsten falsch.
*/