How to debug a TLSv1.3 protocol problem?
Claus Assmann
ca+ssl-users at esmtp.org
Wed May 20 12:44:13 UTC 2020
On Wed, May 20, 2020, Matt Caswell wrote:
> SSL_accept:TLSv1.3 early data
> What happens in the application code? What was the function being called
> (SSL_accept?) and what return value do you get? What does
> SSL_get_error() return at this point?
It's:
r = SSL_accept(srv_ssl);
if (r <= 0)
ssl_err = SSL_get_error(srv_ssl, r);
return value=-1
ssl_err=5 SSL_ERROR_SYSCALL
errno=0
It seems to me server and client get "out of sync" at the I/O layer
if I understand the SSL traces correctly:
S8: sends 2 records at the end:
- handshake
- ChangeCipherSpec
M1: receives
handshake
but seemingly not
ChangeCipherSpec
Instead it sends only its own
ChangeCipherSpec
then its handshake again
and only then it receives ChangeCipherSpec
and S8 seemingly tries to interprete the out-of-sync data as TLSv1.3
early data and fails, thus returning an error from SSL_accept().
If that analysis is correct (can someone check please?), then I
need to look at the I/O layers of both programs -- they are rather
different :-(
More information about the openssl-users
mailing list