Manual:SSL set bio(3)
SSL_set_bio, SSL_set_rbio, SSL_set_wbio - connect the SSL object with a BIO
#include <openssl/ssl.h> void SSL_set_bio(SSL *ssl, BIO *rbio, BIO *wbio);
SSL_set_bio() connects the BIOs rbio and wbio for the read and write operations of the TLS/SSL (encrypted) side of ssl.
The SSL engine inherits the behaviour of rbio and wbio, respectively. If a BIO is non-blocking, the ssl will also have non-blocking behaviour.
If there was already a BIO connected to ssl, BIO_free() will be called (for both the reading and writing side, if different).
SSL_set_rbio() does the same job as SSL_set_bio() except that it enables you to only connect the read bio, without touching the write bio. Similarly SSL_set_wbio() enables you to connect the write bio without touching the read bio.
SSL_set_bio(), SSL_set_rbio() and SSL_set_wbio() cannot fail.
SSL_set_rbio() and SSL_set_wbio() were added in OpenSSL 1.1.0.