#ifndef KEYSTRENGTHENER_H #define KEYSTRENGTHENER_H #include #include #include #include "sqlite/SQLiteConnection.h" class KeyStrengthener { public: KeyStrengthener() = default; KeyStrengthener(std::unique_ptr hasher, Botan::secure_vector salt, size_t keysize); KeyStrengthener(const KeyStrengthener&) = delete; KeyStrengthener& operator=(const KeyStrengthener &) = delete; KeyStrengthener(KeyStrengthener &&rhs); KeyStrengthener& operator=(KeyStrengthener &&rhs); Botan::secure_vector derive(const std::string &passphrase); void saveParams(SQLiteConnection &db, const QString &table_name); private: std::unique_ptr m_hasher; Botan::secure_vector m_salt; size_t m_keySize; }; #endif // KEYSTRENGTHENER_H