#pragma once // With OpenSSL 1.1.0, some functions were deprecated. Need to abstract them // to make the code backward compatible with older OpenSSL veresions. // Reference: https://wiki.openssl.org/index.php/OpenSSL_1.1.0_Changes #if OPENSSL_VERSION_NUMBER < 0x10100000L #include <openssl/evp.h> #include <sdbusplus/bus.hpp> #include <string> extern "C" { EVP_MD_CTX* EVP_MD_CTX_new(void); void EVP_MD_CTX_free(EVP_MD_CTX* ctx); } namespace utils { /** * @brief Gets the D-Bus Service name for the input D-Bus path * * @param[in] bus - Bus handler * @param[in] path - Object Path * @param[in] intf - Interface * * @return Service name * @error InternalFailure exception thrown */ std::string getService(sdbusplus::bus_t& bus, const std::string& path, const std::string& intf); /** @brief Suspend hiomapd. * * @param[in] bus - The D-Bus bus object. */ void hiomapdSuspend(sdbusplus::bus_t& bus); /** @brief Resume hiomapd. * * @param[in] bus - The D-Bus bus object. */ void hiomapdResume(sdbusplus::bus_t& bus); /** @brief Set the Hardware Management Console Managed bios attribute to * Disabled to clear the indication that the system is HMC-managed. * * @param[in] bus - The D-Bus bus object. */ void clearHMCManaged(sdbusplus::bus_t& bus); /** @brief Set the Clear hypervisor NVRAM bios attribute to Enabled to indicate * to the hypervisor to clear its NVRAM. * * @param[in] bus - The D-Bus bus object. */ void setClearNvram(sdbusplus::bus_t& bus); /** @brief DeleteAll error logs * * @param[in] bus - The D-Bus bus object. */ void deleteAllErrorLogs(sdbusplus::bus_t& bus); } // namespace utils #endif // OPENSSL_VERSION_NUMBER < 0x10100000L