I wrote an article about this for Windows Developer Magazine back in 2002. You can read it
here[
^]. The trick is to use a bio pair and to push data through the OpenSSL engine.
You can use a similar design for IOCP based solutions. The trick is to handle your IOCP read completions normally and then push the data into your BIO pair and that routes it through the OpenSSL code and then back to you.