blob: cf9017eed201d471e2eb9e60409b6c32f6ee0c01 [file] [log] [blame]
Marri Devender Raof4d63482019-05-02 06:35:34 -05001#pragma once
Nan Zhou014be0b2021-12-28 18:00:14 -08002#include <sdbusplus/server/object.hpp>
Marri Devender Raof4d63482019-05-02 06:35:34 -05003#include <xyz/openbmc_project/Certs/CSR/server.hpp>
4
Patrick Williams223e4602023-05-10 07:51:11 -05005#include <string>
6
Nan Zhoue1289ad2021-12-28 11:02:56 -08007namespace phosphor::certs
Marri Devender Raof4d63482019-05-02 06:35:34 -05008{
Marri Devender Raof4d63482019-05-02 06:35:34 -05009
10enum class Status
11{
Nan Zhoue3d47cd2022-09-16 03:41:53 +000012 success,
13 failure,
Marri Devender Raof4d63482019-05-02 06:35:34 -050014};
15
Nan Zhoucf06ccd2021-12-28 16:25:45 -080016namespace internal
17{
18using CSRInterface = sdbusplus::server::object_t<
19 sdbusplus::xyz::openbmc_project::Certs::server::CSR>;
20}
Marri Devender Raof4d63482019-05-02 06:35:34 -050021
22/** @class CSR
23 * @brief To read CSR certificate
24 */
Nan Zhoucf06ccd2021-12-28 16:25:45 -080025class CSR : public internal::CSRInterface
Marri Devender Raof4d63482019-05-02 06:35:34 -050026{
27 public:
28 CSR() = delete;
29 ~CSR() = default;
30 CSR(const CSR&) = delete;
31 CSR& operator=(const CSR&) = delete;
Nan Zhoucf06ccd2021-12-28 16:25:45 -080032 CSR(CSR&&) = delete;
33 CSR& operator=(CSR&&) = delete;
Marri Devender Raof4d63482019-05-02 06:35:34 -050034
35 /** @brief Constructor to put object onto bus at a D-Bus path.
36 * @param[in] bus - Bus to attach to.
37 * @param[in] path - The D-Bus object path to attach at.
38 * @param[in] installPath - Certificate installation path.
39 * @param[in] status - Status of Generate CSR request
40 */
Patrick Williamsb3dbfb32022-07-22 19:26:57 -050041 CSR(sdbusplus::bus_t& bus, const char* path, std::string&& installPath,
Nan Zhoucf06ccd2021-12-28 16:25:45 -080042 const Status& status);
Marri Devender Raof4d63482019-05-02 06:35:34 -050043 /** @brief Return CSR
44 */
Patrick Williamse129be32021-04-30 20:35:19 -050045 std::string csr() override;
Marri Devender Raof4d63482019-05-02 06:35:34 -050046
47 private:
Marri Devender Raof4d63482019-05-02 06:35:34 -050048 /** @brief object path */
49 std::string objectPath;
50
51 /** @brief Certificate file installation path **/
Nan Zhoucf06ccd2021-12-28 16:25:45 -080052 std::string certInstallPath;
Marri Devender Raof4d63482019-05-02 06:35:34 -050053
54 /** @brief Status of GenerateCSR request */
55 Status csrStatus;
56};
Nan Zhoue1289ad2021-12-28 11:02:56 -080057} // namespace phosphor::certs