Showing the contents of the error queue would help, but it seems most likely that what is going on is that I overlooked the fact that BIO_new_mem_buf() makes a read-only BIO. I'm not sure offhand that there's a way to get a writeable BIO using application-supplied buffers; maybe someone else on the list knows. -Ben On 10/13/2016 05:04 AM, Ajay Garg wrote: > Thanks Ben for the reply. > > I tried the following, and the code hits the block as commented :: > > > ########################################################################### > static char inter_bio_buf[1000]; > static char network_bio_buf[1000]; > > { > BIO *inter_bio_buf_bio = NULL, *network_bio_buf_bio = NULL; > > inter_bio_buf_bio = BIO_new_mem_buf(inter_bio_buf, > sizeof(inter_bio_buf)); > if(inter_bio_buf_bio == NULL) > { > /* Control does not reach here. */ > } > > network_bio_buf_bio = BIO_new_mem_buf(network_bio_buf, > sizeof(network_bio_buf)); > if(network_bio_buf_bio == NULL) > { > /* Control does not reach here. */ > } > > if(!BIO_make_bio_pair(inter_bio_buf_bio, network_bio_buf_bio)) > { > /* CONTROL REACHES HERE. */ > } > } > ############################################################################ > > What am I doing wrong? > > On Wed, Oct 12, 2016 at 12:59 AM, Benjamin Kaduk <bkaduk at akamai.com > <mailto:bkaduk at akamai.com>> wrote: > > On 10/11/2016 02:06 PM, Ajay Garg wrote: >> Hi All. >> >> >> a) >> In the call, >> int BIO_new_bio_pair(BIO **bio1, size_t writebuf1, BIO **bio2, >> size_t writebuf2); are internal-buffers malloc'ed for each of >> "bio1" and "bio2"? >> If yes, is there a way to pass buffers from the >> application-layer? I ask this, because not all systems possess >> dynamic-memory allocation (or at least "malloc" is not available >> on all systems). >> b) Irrespective of the values of "writebuf1" and "writebuf2" in >> a), I see that everything works perfect. So, there's got to be >> some internal-buffer that manages the complete ssl-packet, most >> probably instantiated via the call BIO* BIO_new(BIO_f_ssl()); >> Here too, is it possible to pass the buffer from >> application-layer (because of same reasons as above)? > > > You should be able to produce the desired effect with > BIO_new_mem_buf() (twice) and attaching the resulting BIOs to each > other with BIO_make_bio_pair(). > > -Ben > > -- > openssl-users mailing list > To unsubscribe: > https://mta.openssl.org/mailman/listinfo/openssl-users > <https://urldefense.proofpoint.com/v2/url?u=https-3A__mta.openssl.org_mailman_listinfo_openssl-2Dusers&d=DQMFaQ&c=96ZbZZcaMF4w0F4jpN6LZg&r=sssDLkeEEBWNIXmTsdpw8TZ3tAJx-Job4p1unc7rOhM&m=yIux2i-e8M_BBOxWlCVHTS64upD1U_SZKodwVOZEwVk&s=wUc5DIv6EgcKaU921dtXrZxxtZnY6A8gCDQF9Zt-tSs&e=> > > > > > -- > Regards, > Ajay > > -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mta.openssl.org/pipermail/openssl-users/attachments/20161014/cc95b6c6/attachment-0001.html>