#pragma once
#include "pch.h"
namespace SSLClient {
///
/// SSL证书管理器
/// 负责加载和管理证书、私钥
///
class CertificateManager
{
public:
CertificateManager();
~CertificateManager();
// 禁止拷贝
CertificateManager(const CertificateManager&) = delete;
CertificateManager& operator=(const CertificateManager&) = delete;
///
/// 从内存加载X509证书
///
/// PEM格式的证书
/// X509证书对象,失败返回nullptr
X509* LoadCertificateFromMemory(const char* certPem);
///
/// 从内存加载私钥
///
/// PEM格式的私钥
/// 私钥密码
/// EVP_PKEY对象,失败返回nullptr
EVP_PKEY* LoadPrivateKeyFromMemory(const char* keyPem, const char* password);
///
/// 打印OpenSSL错误信息
///
/// 错误描述
static void PrintSSLError(const char* message);
};
} // namespace SSLClient