openssl使用

来源:互联网 发布:域名快速备案费用 编辑:程序博客网 时间:2024/04/20 13:36

 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;
 }
}