[openssl-users] Questions on internal-buffers being used

Benjamin Kaduk bkaduk at akamai.com
Fri Oct 14 16:38:30 UTC 2016


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>


More information about the openssl-users mailing list