1 #pragma once
2 
3 // With OpenSSL 1.1.0, some functions were deprecated. Need to abstract them
4 // to make the code backward compatible with older OpenSSL veresions.
5 // Reference: https://wiki.openssl.org/index.php/OpenSSL_1.1.0_Changes
6 #if OPENSSL_VERSION_NUMBER < 0x10100000L
7 
8 #include <openssl/evp.h>
9 
10 #include <sdbusplus/bus.hpp>
11 
12 #include <string>
13 
14 extern "C"
15 {
16 EVP_MD_CTX* EVP_MD_CTX_new(void);
17 void EVP_MD_CTX_free(EVP_MD_CTX* ctx);
18 }
19 
20 namespace utils
21 {
22 
23 /**
24  * @brief Gets the D-Bus Service name for the input D-Bus path
25  *
26  * @param[in] bus  -  Bus handler
27  * @param[in] path -  Object Path
28  * @param[in] intf -  Interface
29  *
30  * @return  Service name
31  * @error   InternalFailure exception thrown
32  */
33 std::string getService(sdbusplus::bus_t& bus, const std::string& path,
34                        const std::string& intf);
35 
36 /** @brief Suspend hiomapd.
37  *
38  * @param[in] bus - The D-Bus bus object.
39  */
40 void hiomapdSuspend(sdbusplus::bus_t& bus);
41 
42 /** @brief Resume hiomapd.
43  *
44  * @param[in] bus - The D-Bus bus object.
45  */
46 void hiomapdResume(sdbusplus::bus_t& bus);
47 
48 /** @brief Set the Hardware Management Console Managed bios attribute to
49  *         Disabled to clear the indication that the system is HMC-managed.
50  *
51  * @param[in] bus - The D-Bus bus object.
52  */
53 void clearHMCManaged(sdbusplus::bus_t& bus);
54 
55 /** @brief Set the Clear hypervisor NVRAM bios attribute to Enabled to indicate
56  *         to the hypervisor to clear its NVRAM.
57  *
58  * @param[in] bus - The D-Bus bus object.
59  */
60 void setClearNvram(sdbusplus::bus_t& bus);
61 
62 /** @brief DeleteAll error logs
63  *
64  * @param[in] bus - The D-Bus bus object.
65  */
66 void deleteAllErrorLogs(sdbusplus::bus_t& bus);
67 
68 } // namespace utils
69 
70 #endif // OPENSSL_VERSION_NUMBER < 0x10100000L
71