
Hi George, On Mon, 18 Dec 2006 17:50:03 -0500, "George M. Garner Jr." <gmgarner@erols.com> said:
Actually, SSL is almost trivial on Windows, particularly when you compare it with the OpenSSL implementation. See e.g., http://www.codeproject.com/internet/sslsocket.asp. Doing SSL within the context of IOCompletion ports is a bit more complicated, which this sample doesn't deal with. But presumable you have already cracked that nut with your OpenSSL implementation.
The openssl support was contributed, but I take your point. However this would be a good opportunity to rework the async support so that it supports stuff like custom memory allocation etc (the current one doesn't).
Actually, to answer my own question, it looks like I would need to parameterize the service_impl_type in the context_service class: [...]
I suggest doing an initial implementation that doesn't need to modify asio itself, and so simply provide new implementations of the ssl::basic_context's Service template parameter and the ssl::stream's Service template parameter. E.g.: class schannel_context_service { ... }; class schannel_stream_service { ... }; typedef ssl::basic_context<schannel_context_service> my_ssl_context; typedef ssl::stream<ip::tcp::socket, schannel_stream_service> my_ssl_socket; Once that's working we can look at merging it in as the default implementation on Windows.
Is 0.3.7 still the current release?
It would be much better to work against what's in CVS, if you can. Cheers, Chris