49 lines
1.2 KiB
C++
49 lines
1.2 KiB
C++
#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
|