[openssl-users] DTLS fragmentation and mem BIO

Matt Caswell matt at openssl.org
Tue Sep 6 14:27:43 UTC 2016



On 06/09/16 15:22, Lorenzo Miniero wrote:
> 2016-09-06 16:05 GMT+02:00 Matt Caswell <matt at openssl.org
> <mailto:matt at openssl.org>>:
> 
> 
> 
>     On 06/09/16 14:55, Lorenzo Miniero wrote:
>     > Apologies for reviving this old thread, but a user of my project made me
>     > notice that my code doesn't compile on Openssl 1.1.0 anymore. Apparently
>     > the cause is some structures have been made opaque in the new version.
>     > In my case, the structure that breaks the code is BIO, as I used some of
>     > its previously public properties in my filter. Is there any transition
>     > documentation page that can help figuring out how I can adapt it
>     > accordingly? Or is the way my filter was written at the time hopelessly
>     > broken now, and a different approach to do the same needed?
> 
>     Probably there is a "getter" function to get at what you need. What
>     properties are they?
> 
>     The BIO_METHOD structure is also now opaque and needs to be setup via
>     the BIO_meth_*() functions. See:
> 
>     https://www.openssl.org/docs/manmaster/crypto/BIO_meth_new.html
>     <https://www.openssl.org/docs/manmaster/crypto/BIO_meth_new.html>
> 
> 
> 
> Thanks for the quick answer!
> 
> Adapting the BIO_METHOD stuff looks easy enough indeed, thanks for the
> pointers. The problem is that, in my BIO_METHOD callbacks, I access some
> of the BIO properties for the logic to implement. For instance, in the
> *create callback I set, among others, my own helper struct pointer in
> the ->ptr property of the involved BIO, so that I can always access it
> when using the BIO itself; or, in the *write callback, I access the
> ->next_bio property.

Use BIO_get_data()/BIO_set_data() for ptr, and BIO_next()/BIO_set_next()
for next_bio.

Matt



More information about the openssl-users mailing list