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