xref: /openbmc/phosphor-certificate-manager/csr.hpp (revision 223e460421eebb1c598d9285b0cb01f1150fa50d)
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