2013-04-25 24 views
2

我需要一些关于OpenSSL,TLS套接字的信息。首先,我想通过TCP通过TLS与服务器建立连接。 通常首先创建一个TCP套接字,然后使用TCP套接字连接到服务器,然后将TCP套接字转换(在通过TCP套接字发送或接收任何数据之前)到TLS中。使用OpenSSL将现有的TCP套接字转换为TLS

我的问题是可以按照以下方式吗?

  1. 创建TCP套接字。
  2. 使用TCP套接字连接服务器。
  3. 通过TCP套接字发送和接收一些数据。
  4. 然后将TCP套接字转换为TLS。

    注意:我正在使用OpenSSL。

回答

1

假设服务器必须支持它,给定的方式似乎是可能的。请参阅SMTP。它以这种方式适用于SMTP服务器,其中最初的几个会话是在纯TCP中,然后是在SSL/TLS上。您可以使用BIO_new_socket将现有套接字绑定到BIO,然后使用SSL_set_bio将此套接字设置为SSL *结构。

您可以找到很多SSL客户端的例子。

+0

我正在使用OpenSSl API进行上述转换pSslSocket = new SslSocket; pSslSocket-> connect(iTcpSocket); pSslSocket-> finishNegotiation(10 * 1000); – 2013-04-25 04:00:24

+0

OpenSSL是基于C的库。它看起来不像OpenSSL代码。 SslSocket是OpenSSL的封装吗? – doptimusprime 2013-04-25 04:09:36

+0

是SslSocket是OpenSSL的封装类。 (...) – 2013-04-25 04:15:56