1 #pragma once 2 #include <sdbusplus/server/object.hpp> 3 #include <string> 4 #include <xyz/openbmc_project/Certs/CSR/server.hpp> 5 6 namespace phosphor::certs 7 { 8 9 enum class Status 10 { 11 success, 12 failure, 13 }; 14 15 namespace internal 16 { 17 using CSRInterface = sdbusplus::server::object_t< 18 sdbusplus::xyz::openbmc_project::Certs::server::CSR>; 19 } 20 21 /** @class CSR 22 * @brief To read CSR certificate 23 */ 24 class CSR : public internal::CSRInterface 25 { 26 public: 27 CSR() = delete; 28 ~CSR() = default; 29 CSR(const CSR&) = delete; 30 CSR& operator=(const CSR&) = delete; 31 CSR(CSR&&) = delete; 32 CSR& operator=(CSR&&) = delete; 33 34 /** @brief Constructor to put object onto bus at a D-Bus path. 35 * @param[in] bus - Bus to attach to. 36 * @param[in] path - The D-Bus object path to attach at. 37 * @param[in] installPath - Certificate installation path. 38 * @param[in] status - Status of Generate CSR request 39 */ 40 CSR(sdbusplus::bus_t& bus, const char* path, std::string&& installPath, 41 const Status& status); 42 /** @brief Return CSR 43 */ 44 std::string csr() override; 45 46 private: 47 /** @brief object path */ 48 std::string objectPath; 49 50 /** @brief Certificate file installation path **/ 51 std::string certInstallPath; 52 53 /** @brief Status of GenerateCSR request */ 54 Status csrStatus; 55 }; 56 } // namespace phosphor::certs 57