On Tue, Sep 10, 2019 at 6:04 PM Alex Christensen via Boost
At https://github.com/boostorg/asio/pull/283 https://github.com/boostorg/asio/pull/283 I’ve attached a proof-of-concept which explores making ASIO secure by default.
This looks like nonsense to me.
`asio::ssl::stream` is a layered stream [1] which is implemented in
terms of operations on an instance of the NextLayer type. For example,
given:
asio::ssl::streamtcp::socket ss{...};
the next layer type is tcp::socket, which meets the requirements of
SyncReadStream, SyncWriteStream, AsyncReadStream, and
AsyncWriteStream. Asio's ssl::stream can work with any type which
meets the requirements. Here's an example that uses Beast's test
stream [2]:
asio::ssl::streambeast::test::stream ss{...};
What you have done is ignore the elegant concept-driven design of
Asio, and instead invest energy to pursue some religious agenda
("secure by default"). The result is a less functional networking
component. Here's are two more examples which cannot be implemented
with your design:
This one provides real-time counts of encrypted bytes read and written [3]
asio::ssl::stream