Distribution_Service/CC_SDK/Include/Module/Comm/OpenSSL/CCSSL.h

49 lines
1.2 KiB
C
Raw Normal View History

2025-12-03 18:08:23 +08:00
#ifndef CC_SSL_H
#define CC_SSL_H
#include "openssl/ssl.h"
#include "CCString.h"
#include "Socket/CCClientSocket.h"
namespace CTL {
class SSL_Client {
ssl_st *ssl = nullptr;
public:
private:
public:
SSL_Client(ssl_st *ssl);
~SSL_Client();
ByteHander read(char* buffer,size_t size) const;
int write(const char* buffer,size_t size) const;
SSL* getSSL() const;
static bool IsShutDown(const ssl_st *ssl);
void release();
bool available() const;
};
class CTX_SSL {
SSL_CTX* ssl_ctx = nullptr;
public:
private:
public:
CTX_SSL();
explicit CTX_SSL(bool Server);
~CTX_SSL();
bool init(bool Server = true);
bool setSSLCertificate(const CTL::String &CertPath) const;
bool setSSLKey(const CTL::String &KeyPath, const CTL::String &Passwd) const;
bool setSSLVerify(const CTL::String &CA_Path) const;
SSL_Client* createClient(const CTL::Socket* socket) const;
SSL_CTX* getSSL_CTX() const;
};
class InitSSL_t {
public:
InitSSL_t();
~InitSSL_t();
};
}
// inline CTL::InitSSL_t InitSSL_ABCDEF_T;
#endif