On 06/08/16 02:32, Jim Carroll wrote: > We have a non-blocking windows app that we are migrating to from OpenSSL > 1.0.2i to 1.1.0-pre7-dev. We move data from sockets to SSL via > BIO_s_mem() objects. > > > > rbio = BIO_new(BIO_s_mem()); > > wbio = BIO_new(BIO_s_mem()); > > > > ssl = SSL_new(ssl_ctx); > > SSL_set_bio(ssl, rbio, wbio); > > > > We move data in via BIO_write(rbio, ...), but later an SSL_read(ssl, > ...) returns bytes -1 and SSL_get_error() returns SSL_ERROR(1) > > > > Debug stepping through the code, we were surprised to discover that > ssl3_read_n() dispatched the SSL_read() into BIO_s_connect(). A detailed > study of the code, and I can assure that at no point do we ever > associate the windows socket with SSL. > > Is it possible that that SSL_new() no longer allows the use of memory > BIO's? I know that's a long shot question, but we're grasping at straws > here. No, the use of memory BIO's is perfectly acceptable - and in fact we do exactly that in our own self-tests. See create_ssl_connection() in test/ssltestlib.c. Matt