<div dir="ltr">Hey there, <br><br>I've been down a rabbit hole the last couple of days debugging some broken rtmp tools, specifically, gstreamer's rtmp plugin on Ubuntu 20.04. <div><br></div><div>I've narrowed this issue down to being librtmp not being able to talk to servers that support TLS 1.3, when compiled against gnutls (openssl may also be broken, but that doesn't seem to compile right now on master).</div><div><br></div><div>I've tested against 2 known good TLS 1.3 supporting servers, Mux's and Facebook's, and in both cases the rtmp handshake fails. The handshake fails in at this line in handshake.h:</div><div><br></div><div>if (!WriteN(r, (char *)clientsig-1, RTMP_SIG_SIZE + 1)) </div><div>    return FALSE;</div><div><br></div><div>Changing the allowable TLS versions in the gnutls client fixes this failure, allowing the same configuration to connect over TLS 1.2. For example, by setting the following priorities in rtmp_sys.h:</div><div><br></div><div>#define TLS_client(ctx,s)        gnutls_init((gnutls_session_t *)(&s), GNUTLS_CLIENT); gnutls_priority_set_direct(s, "NORMAL:-VERS-TLS1.3", NULL); gnutls_credentials_set(s, GNUTLS_CRD_CERTIFICATE, ctx->cred)<br></div><div><br></div><div>I've tested other rtmp implementations, and they're unaffected, specifically rtmp2 in gstreamer, and the implementation in ffmpeg both work fine with TLS 1.3.</div><div><br></div><div>This is unfortunate as it makes librtmp, rtmpdump, and any associated tools unusable with rtmps servers on Ubuntu 20.04.</div><div><br></div><div>If anyone has any hints or pointers on why this might be failing, I'd love to hear them. Happy to provide servers or endpoints for testing!<br><br>Thanks!</div><div><div><br></div>-- <br><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr">Phil Cluff | Streaming Architect | +44 7983 406 937 | <a href="mailto:phil@mux.com" target="_blank">phil@mux.com</a><br></div></div></div></div></div></div>