【问题标题】:boost::asio convert socket to secureboost::asio 将套接字转换为安全
【发布时间】:2012-07-28 09:16:58
【问题描述】:
我正在用 C++ 为 Minecraft 游戏编写服务器。
客户端通过普通套接字向服务器发送初始握手包。然后服务器将 RSA 密钥发送回游戏,从那时起所有套接字通信都使用发送给客户端的 RSA 密钥进行 AES 加密。
我有一个想法,我可以避免实现 AES/RSA 并链接到服务器中的其他库,只需在服务器将 RSA 密钥发送到客户。
如果套接字已经创建,我该如何转换它?
【问题讨论】:
标签:
c++
boost
ssl
boost-asio
【解决方案1】:
ssl::stream 是在tcp::socket 之上实现的,您可以通过next_layer 或lowest_layer 成员函数直接访问套接字。实际上,要使用ssl::stream,您首先连接下划线套接字,然后调用ssl::stream::handshake。请注意,您可以在这两个步骤之间做任何您想做的事情,例如直接从 tcp::socket 读取和写入。详情请见this example。