Closed yuroyami closed 10 months ago
Syncplay uses Opportunistic TLS.
In my understanding the way it works from the Syncplay client's perspective is as follows:
{"TLS": {"startTLS": "send"}}
using plaintext.{"TLS": {"startTLS": "true"}}
using plaintext.{"TLS": {"startTLS": "true"}}
message is received by the client, the Syncplay client will actually try start the TLS connection. The client will wait until the connection is established before proceeding with the 'hello' messages which is sent over the upgraded connection. Subsequent messages will also be encrypted.{"TLS": {"startTLS": "false"}}
in plaintext and Syncplay just tells the user that TLS is not supported and sends the hello messages and subsequent messages in plaintext. @Et0h The issue I thought I was facing was getting Twisted to accept Java's TLS connection which keeps getting rejected for some reason. I read your TLS support explanation on the official GitHub. Android's SSL socketing protocol is a pain in the ass and I kept blaming it while I totally forgot to send a TLS message to begin with. I should've analyzed the Python source code more thoroughly to make sure I am not missing anything. That will be immensely helpful to fix this issue. Much appreciated.
The TLS (Transport Layer Security) connection is not getting established. As a consequence, Syncplay now connects to the servers via a bare unprotected TCP/IP socket.
For many people, this is neither a priority nor an issue. But most of us prefer a secured connection over TLS/SSL if possible, which is one of the major features for Desktop's Syncplay.
This will be fixed asap.