[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