boost :: asio将socket转换为安全

时间:2012-07-28 09:16:59

标签: c++ boost ssl boost-asio

我正在为C ++中的Minecraft游戏编写服务器。

客户端通过普通套接字向服务器发送初始握手报文。然后,服务器将RSA密钥发送回游戏,从该点开始的所有套接字通信都将通过RSA密钥加密进行AES加密。

我有一个想法,我可以避免实现AES / RSA并链接到我的服务器中的其他库,只需在服务器发送RSA密钥后直接将我的常规boost :: asio套接字转换为boost :: asio ssl套接字客户。

如果已经创建了套接字,我如何转换它?

1 个答案:

答案 0 :(得分:5)

ssl::streamtcp::socket之上实现,您可以通过next_layerlowest_layer成员函数直接访问套接字。实际上,要使用ssl::stream,首先连接下划线套接字,然后调用ssl::stream::handshake。请注意,您可以在这两个步骤之间执行任何操作,例如直接从tcp::socket读取和写入。有关详细信息,请参阅this example