On Mon, Feb 01, 2021 at 06:21:16AM +0000, Peter Gutmann wrote: > Alan DeKok <al...@deployingradius.com> writes: > > >OpenSSL has a feature SSL_MODE_AUTO_RETRY which makes it process TLS messages > >*after* the Finished message. i.e. the Session Ticket, etc. When an > >application calls SSL_Read(), all of the TLS data is processed, instead of > >just the "TLS finished" message. They've made this the default, because most > >applications get it wrong. > > Asking as the author of a TLS library that has always done this, why would you > stop immediately after the Finished and leave metadata messages sitting unread > in the input stream? Was it just some arbitrary implementation decision, or > is there a technical reason for it?
I expect (but did not attempt to validate) that this was SSLeay-vintage logic involving only reading a single record from the wire per call to SSL_read(). If that record was a handshake record and not application data, well, then the SSL_read() didn't do something useful and so the special "try again" code was returned and the application was supposed to call SSL_read() again. There's no technical reason that I'm aware of. -Ben _______________________________________________ Emu mailing list Emu@ietf.org https://www.ietf.org/mailman/listinfo/emu