#pragma once #include "cryptsetupInterface.hpp" #include "erase.hpp" #include #include #include namespace estoraged { class CryptErase : public Erase { public: /** @brief Creates a CryptErase erase object. * * @param[in] inDevPath - the linux device path for the block device. * @param[in](optional) cryptIface - a unique pointer to an cryptsetup * Interface object. */ CryptErase(std::string_view devPath, std::unique_ptr inCryptIface = std::make_unique()); /** @brief searches and deletes all cryptographic keyslot * and throws errors accordingly. */ void doErase(); private: std::unique_ptr cryptIface; }; } // namespace estoraged