#ifndef CRYPTEXCEPTION_H #define CRYPTEXCEPTION_H #include #include /** * @brief Eine Klasse für Fehler in Verschlüsselungsklassen. */ class CryptException : public std::exception { public: /** * @brief Die Fehler und ihre Codes, * die diese Klasse wirft. */ enum ReturnCode { FileNotFound = 1, FileNotWritable, DecryptionErrorRsa, DecryptionErrorAes, OpenSslError, KeyNotRsa, CsprngNotSeeded, NoUserKeyCreated, NoRecipients }; /** * @brief Erzeugt eine Exception mit den angegebenen Werten. * @param what Die Fehlermeldung, die dem Nutzer gezeigt wird. * @param returnCode Der Rückgabewert für die Konsole. */ CryptException(std::string what, ReturnCode returnCode); /** * @brief Räumt die Exception ab. */ virtual ~CryptException() throw(); /** * @brief Gibt die Fehlermelung für den Nutzer zurück. * @return Die Fehlermeldung für den Nutzer. */ virtual const char *what() const throw(); /** * @brief Gibt den Konsolenrückgabewert zurück. * @return Der Rückgabewert für die Konsole. */ ReturnCode returnCode() const; private: std::string whatMsg; ReturnCode retId; }; #endif // CRYPTEXCEPTION_H