有人可以共享OpenSSL示例代码吗?

时间:2013-04-03 22:00:37

标签: openssl

我一直在搜索并尝试各种建议,但似乎都没有正常工作。

为了演示编程SSL_read(),SSL_write(),SSL_ERROR_WANT_READ和SSL_ERROR_WANT_WRITE的正确方法,是否有任何示例代码可供共享?非常感谢。

1 个答案:

答案 0 :(得分:2)

以下是使用SSL(针对客户端)的步骤

  1. 创建套接字并建立TCP连接。
  2. 创建SSL_CTX结构和BIO *(绑定套接字)
  3. 使用SSL_CTX
  4. 创建SSL结构
  5. 致电SSL_connect
  6. 如果步骤3成功,请继续,否则返回错误
  7. 之后调用SSL_write和SSL_read。
  8. 关闭连接
  9. 清理已分配的结构。
  10. 对于服务器,您需要使用SSL_accept。

    //Step 1
    SSL_CTX * sslctx = SSL_CTX_new(SSLv3_client_method);
    BIO * sock = BIO_new_socket((int)your_tcp_socket, BIO_NOCLOSE);
    //Step 2
    SSL * ssl = SSL_new(sslctx);
    //Step 3
    SSL_connect(ssl);
    
    //for server
    SSL_accept(ssl);