2017-10-04 142 views
0

boost::asio库通过在boost::asio::ssl::stream装饰器类模板中封装套接字对象而对套接字上的SSL加密流量提供支持。例如:是否读取或写入boost :: asio :: ssl :: stream :: next_layer()绕过SSL解密/加密?

boost::asio::ssl::stream<boost::asio::ip::tcp::socket> sslSocket; 

tcp::socket一些操作不被ssl::stream支持。调用ssl::stream::next_layer方法返回对包装对象的引用,这种方式不受ssl::stream操作支持,可直接对包装对象执行操作。

然而,它似乎是合乎逻辑的我,进行直接读取和包裹插座对象上写操作绕过SSL解密和加密和SSL正确的阅读行为和sslSocket写必须在包装ssl::stream对象直接进行。

这是正确的,或者我可以自由地执行包装对象的读写操作吗?

回答

1

不仅使用底层套接字绕过加密,它绕过了所有的协议。包括握手,(重新)谈判,旁道,存活等。

没有实际的保证,它可以工作。您可以预期的唯一工作是在首次初始化任何SSL操作之前使用底层套接字。

除此之外,它就像将随机数据写入由openssl管理的套接字的filedescriptor。