2017-10-04 73 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。