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