syncthing/lib
Jakob Borg f24676ba5a
lib/tlsutil: Enable TLS 1.3 when available, on test builds (fixes #5065) (#5558)
* lib/tlsutil: Enable TLS 1.3 when available, on test builds (fixes #5065)

This enables TLS 1.3 negotiation on Go 1.12 by setting the GODEBUG
variable. For now, this just gets enabled on test versions (those with a
dash in the version number).

Users wishing to enable this on production builds can set GODEBUG
manually.

The string representation of connections now includes the TLS version
and cipher suite. This becomes part of the log output on connections.
That is, when talking to an old client:

    Established secure connection .../TLS1.2-TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256

and now potentially:

    Established secure connection .../TLS1.3-TLS_AES_128_GCM_SHA256

(The cipher suite was there previously in the log output, but not the
TLS version.)

I also added this info as a new Crypto() method on the connection, and
propagate this out to the API and GUI, where it can be seen in the
connection address hover (although with bad word wrapping sometimes).

* wip

* wip
2019-02-26 11:49:02 +01:00
..
auto build: Let "go generate" create assets 2018-06-26 10:29:36 +02:00
beacon all: Revert the underscore sillyness 2019-02-02 12:16:27 +01:00
build all: Use new reflect based CLI (#5487) 2019-02-12 07:58:24 +01:00
config all: Hide implementations behind interfaces for mocked testing (#5548) 2019-02-26 08:09:25 +00:00
connections lib/tlsutil: Enable TLS 1.3 when available, on test builds (fixes #5065) (#5558) 2019-02-26 11:49:02 +01:00
db lib/db: Flush batch based on size and refactor (fixes #5531) (#5536) 2019-02-14 23:15:13 +00:00
dialer all: Revert the underscore sillyness 2019-02-02 12:16:27 +01:00
discover all: Revert the underscore sillyness 2019-02-02 12:16:27 +01:00
events all: Revert the underscore sillyness 2019-02-02 12:16:27 +01:00
fs lib/fs: Rename fsFile* to basicFile* (#5546) 2019-02-24 18:02:02 +01:00
ignore all: Revert the underscore sillyness 2019-02-02 12:16:27 +01:00
locations all: Use new reflect based CLI (#5487) 2019-02-12 07:58:24 +01:00
logger all: Get rid of fatal logging (#5537) 2019-02-14 20:29:14 +00:00
model lib/tlsutil: Enable TLS 1.3 when available, on test builds (fixes #5065) (#5558) 2019-02-26 11:49:02 +01:00
nat all: Hide implementations behind interfaces for mocked testing (#5548) 2019-02-26 08:09:25 +00:00
osutil all: Revert the underscore sillyness 2019-02-02 12:16:27 +01:00
pmp all: Update license url to https (ref #3976) 2017-02-09 08:04:16 +01:00
protocol all: Revert the underscore sillyness 2019-02-02 12:16:27 +01:00
rand all: Revert the underscore sillyness 2019-02-02 12:16:27 +01:00
rc all: Revert the underscore sillyness 2019-02-02 12:16:27 +01:00
relay all: Revert the underscore sillyness 2019-02-02 12:16:27 +01:00
scanner lib/scanner: Use standard adler32 when we don't need rolling (#5556) 2019-02-25 13:29:31 +04:00
sha256 all: Revert the underscore sillyness 2019-02-02 12:16:27 +01:00
signature all: Update license url to https (ref #3976) 2017-02-09 08:04:16 +01:00
stats lib/db: Refactor: use a Lowlevel type underneath Instance (ref #5198) (#5212) 2018-10-10 11:34:24 +02:00
sync all: Even more boring linter fixes (#5501) 2019-02-02 11:45:17 +01:00
tlsutil lib/tlsutil: Enable TLS 1.3 when available, on test builds (fixes #5065) (#5558) 2019-02-26 11:49:02 +01:00
upgrade all: Revert the underscore sillyness 2019-02-02 12:16:27 +01:00
upnp lib/upnp: Don’t log unknown device types (fixes #5038) (#5087) 2018-07-30 16:34:35 +02:00
util all: Use new reflect based CLI (#5487) 2019-02-12 07:58:24 +01:00
versioner all: Revert the underscore sillyness 2019-02-02 12:16:27 +01:00
watchaggregator all: Hide implementations behind interfaces for mocked testing (#5548) 2019-02-26 08:09:25 +00:00
weakhash lib/scanner: Use standard adler32 when we don't need rolling (#5556) 2019-02-25 13:29:31 +04:00