OpenSSL will do networking for you only if the underlying BIO is a
socket.
The data source/sink for OpenSSL can be anything you choose. The library
comes with a few BIO implementations and if none suit your purpose, then
writing a BIO should not be very difficult as the BIO functions and
their internals are pretty much standard.
So what do you want OpenSSL to do. Given data, you want to encode/deocde
it and store the result in some buffer. That is exactly what
SSL_read/write do. The BIOs are just source/sink (buffers) for OpenSSL.
It just happens to be that people generally tend to use socket BIOs most
of time and therefore you might feel that OpenSSL does the networking.
Think of it this way. It also does the networking for you IFF you want
it to!! Now I'd call that a feature.
I personally had the same problem as you. I wanted to decouple the
network IO from the SSL part. I used memory BIOs. My network engine
read/wrote from/to the wire, wrote the data to appropriate memory BIO
and then called SSL_read/write to transform the data. Isn't this the
minimum that you'd have to do with any other thing that is being
proposed here ?
You say you want to bypass all the buffering that OpenSSL does when
using BIO pairs, but why? Isn't it great to have something ready to use
instead of writing an almost similar thing from scratch !!
Really, you haven't quite outlined a mechanism to do what you propose to
do (which I frankly believe is already present in OpenSSL).
Regards,
Amit.
______________________________________________________________________
OpenSSL Project http://www.openssl.org
Development Mailing List [EMAIL PROTECTED]
Automated List Manager [EMAIL PROTECTED]