Thanks.
Regarding BIO_dgram_sctp_wait_for_dry() and BIO_dgram_sctp_msg_waiting(),
we can use the new control options which are already merged in master :
BIO_CTRL_DGRAM_SCTP_WAIT_FOR_DRY
BIO_CTRL_DGRAM_SCTP_MSG_WAITING.



On Tue, 15 Oct, 2019, 3:19 PM Matt Caswell, <m...@openssl.org> wrote:

>
>
> On 15/10/2019 10:32, Matt Caswell wrote:
> >
> >
> > On 15/10/2019 07:51, Naveen Shivanna wrote:
> >> Hi,
> >>
> >> After adding 'enable-sctp' compile option, OpenSSL (DTLS) can work with
> >> SCTP as transport.
> >>
> >> OpenSSL bss_dgram.c file includes the kernel /netinet/sctp.h.
> >>
> >> We have our own custom SCTP implementation (also implements  custom BIO
> >> METHODS, do not use the default methods), so we need to remove the
> >> dependency of kernel sctp.h from bss_gram.c file. Our build environment
> >> do not have the sctp.h and we are not supposed to install lksctp-tools.
> >>
> >> Can we tailor the bss_gram.c with new compile macro or is there any
> >> other better solution ?
> >
> > Hmm. There isn't really a "good" way to do this. I can think of two
> options:
> >
> > 1) Modify the OpenSSL source (perhaps in the way that you suggest with a
> > compile time macro)
> >
> > or
> >
> > 2) Provide a "dummy" implementation of netinet/sctp.h. This would have
> > to provide "stub" implementations of any SCTP related functions/macros
> > used by bss_dgram.c. That would enable you to build unmodified OpenSSL
> > source.
>
> Thinking about this a little more, I think you may encounter other
> problems with replacing the standard SCTP BIO with your own one. The
> functions BIO_dgram_sctp_wait_for_dry() and BIO_dgram_sctp_msg_waiting()
> spring to mind. They get called by libssl in certain scenarios, are
> specific to the standard SCTP BIO, and are not replaceable via BIO_METHOD.
>
> I think you would have to implement your own versions of those
> functions, which implies that modifying the OpenSSL source is the only
> possibility.
>
> Matt
>

Reply via email to