syncthing/lib/discover
Jakob Borg 8519a24ba6
cmd/*, lib/tlsutil: Refactor TLS stuff (fixes #5256) (#5276)
This changes the TLS and certificate handling in a few ways:

- We always use TLS 1.2, both for sync connections (as previously) and
  the GUI/REST/discovery stuff. This is a tightening of the requirements
  on the GUI. AS far as I can tell from caniusethis.com every browser from
  2013 and forward supports TLS 1.2, so I think we should be fine.

- We always greate ECDSA certificates. Previously we'd create
  ECDSA-with-RSA certificates for sync connections and pure RSA
  certificates for the web stuff. The new default is more modern and the
  same everywhere. These certificates are OK in TLS 1.2.

- We use the Go CPU detection stuff to choose the cipher suites to use,
  indirectly. The TLS package uses CPU capabilities probing to select
  either AES-GCM (fast if we have AES-NI) or ChaCha20 (faster if we
  don't). These CPU detection things aren't exported though, so the tlsutil
  package now does a quick TLS handshake with itself as part of init().
  If the chosen cipher suite was AES-GCM we prioritize that, otherwise we
  prefer ChaCha20. Some might call this ugly. I think it's awesome.
2018-10-21 14:17:50 +09:00
..
cache.go all, vendor: Switch back to non-forked thejerf/suture (#5171) 2018-09-08 12:56:56 +03:00
cache_test.go lib/connections: Fix local address priority 2017-11-22 07:05:49 +00:00
debug.go all: Update license url to https (ref #3976) 2017-02-09 08:04:16 +01:00
discover.go all, vendor: Switch back to non-forked thejerf/suture (#5171) 2018-09-08 12:56:56 +03:00
doc.go all: Update license url to https (ref #3976) 2017-02-09 08:04:16 +01:00
global.go lib/config, lib/discover: Support new discovery cluster (ref #4618) 2018-01-05 14:18:32 +00:00
global_test.go cmd/*, lib/tlsutil: Refactor TLS stuff (fixes #5256) (#5276) 2018-10-21 14:17:50 +09:00
local.go all, vendor: Switch back to non-forked thejerf/suture (#5171) 2018-09-08 12:56:56 +03:00
local.pb.go all: Add invalid/ignored files to global list, announce to peers (fixes #623) 2017-11-11 19:18:17 +00:00
local.proto lib/protocol: Use DeviceID in protocol messages, with custom marshalling 2016-10-29 21:56:24 +00:00
local_test.go Fix discovery in the absence of listen addresses (fixes #4418) 2017-11-17 09:12:35 +00:00