Hi Oli, I've also been looking at how the SSLEngine may be implemented in OpenSSL and am struggling to to obtain the handshake data to return to the other side without sending it across an actual connection. I've been working with an open SSL bio pair which, according to the manual, enables an application to have control over the I/O, instead of OpenSSL sending it directly.
I've added a testcase that actually does a handshake and sends some data between a client and server. I've uploaded my changes to https://issues.apache.org/jira/browse/HARMONY-6627 which contains the set up of the SSL (using a bio pair, but I'm still not sure this is the right route), and implementations of accept and connect. The handshake currently returns the expected initial state (the client side requiring a wrap and the server expected an unwrap), but subsequent wrap/unwraps aren't able to obtain the handshake data. Best wishes, Cath