0

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

为了演示SSL_read()、SSL_write()、SSL_ERROR_WANT_READ和SSL_ERROR_WANT_WRITE的正确编程方法,有没有示例代码可以分享?非常感谢。

4

1 回答 1

2

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

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

对于服务器,您需要使用 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);
于 2013-04-04T03:46:18.283 回答