azure-protected-vm-secrets/Linux/OsslError.h (17 lines of code) (raw):

#include <string> #include <stdexcept> #include <sstream> #include <openssl/err.h> class OsslError : public std::runtime_error { private: unsigned long errCode; public: OsslError(unsigned long errCode, const std::string& description) : std::runtime_error(description), errCode(errCode) {} unsigned long getErrorCode() const { return errCode; } std::string getErrorInfo() const { char errInfo[256]; ERR_error_string_n(errCode, errInfo, sizeof(errInfo)); return std::string(errInfo); } };