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