1.include file and comment lib:
#include <openssl/ssl.h>
#include <openssl/x509.h>
#include <openssl/rand.h>
#include <openssl/err.h>
#pragma comment( lib, "libeay32.lib" )
#pragma comment( lib, "ssleay32.lib" )
2.initialization
SSL_library_init();
OpenSSL_add_all_algorithms();
SSL_load_error_strings();
SSL* m_ssl = NULL;
SSL_CTX* m_ssl_ctx = NULL;
3.create ssl
int CreateSSL()
{
m_ssl_ctx = SSL_CTX_new(SSLv3_client_method());
SSL_CTX_load_verify_locations(m_ssl_ctx, NULL, NULL);
SSL_CTX_set_verify(m_ssl_ctx,SSL_VERIFY_NONE,NULL);
m_ssl = SSL_new(m_ssl_ctx);
SSL_set_fd(m_ssl, m_sockfd);
int ret=SSL_connect(m_ssl);
return ret;
}
4.read & write
SSL_write(m_ssl, buf, (int)size);
SSL_read(m_ssl, buf, (int)size);
5.destroy
void DestorySSL()
{
if ( m_ssl )
{
SSL_shutdown(m_ssl);
SSL_free(m_ssl);
m_ssl=NULL;
}
if ( m_ssl_ctx )
{
SSL_CTX_free(m_ssl_ctx);
m_ssl_ctx=NULL;
}
}