blob: 728cfef25153478f03cbf3698e220472d0f56a95 [file] [log] [blame]
Marri Devender Raof4d63482019-05-02 06:35:34 -05001#pragma once
2#include <xyz/openbmc_project/Certs/CSR/server.hpp>
3
4namespace phosphor
5{
6namespace certs
7{
8using CSRRead = sdbusplus::xyz::openbmc_project::Certs::server::CSR;
9using CSRIface = sdbusplus::server::object::object<CSRRead>;
10
11enum class Status
12{
13 SUCCESS,
14 FAILURE,
15};
16
17using CertInstallPath = std::string;
18
19/** @class CSR
20 * @brief To read CSR certificate
21 */
22class 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