You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Adds support for server-side ECH.
We make a couple of implementation decisions that are not completely
in-line with the spec. In particular, we don't enforce that the SNI
matches the ECHConfig public_name, and we implement a hybrid
shared/backend mode (rather than shared or split mode, as described in
Section 7). Both of these match the behavior of BoringSSL.
The hybrid server mode will either act as a shared mode server, where-in
the server accepts "outer" client hellos and unwraps them before
processing the "inner" hello, or accepts bare "inner" hellos initially.
This lets the server operate either transparently as a shared mode
server, or a backend server, in Section 7 terminology. This seems like
the best implementation choice for a TLS library.
Fixes#68500
Change-Id: Ife69db7c1886610742e95e76b0ca92587e6d7ed4
Reviewed-on: https://go-review.googlesource.com/c/go/+/623576
Reviewed-by: Filippo Valsorda <[email protected]>
LUCI-TryBot-Result: Go LUCI <[email protected]>
Reviewed-by: Daniel McCarney <[email protected]>
Auto-Submit: Roland Shoemaker <[email protected]>
Reviewed-by: Dmitri Shuralyov <[email protected]>
Copy file name to clipboardExpand all lines: src/crypto/tls/bogo_config.json
+13-3Lines changed: 13 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -12,7 +12,7 @@
12
12
13
13
"TLS-ECH-Client-Reject-ResumeInnerSession-TLS12": "We won't attempt to negotiate 1.2 if ECH is enabled (we could possibly test this if we had the ability to indicate not to send ECH on resumption?)",
14
14
15
-
"TLS-ECH-Client-Reject-EarlyDataRejected": "We don't support switiching out ECH configs with this level of granularity",
15
+
"TLS-ECH-Client-Reject-EarlyDataRejected": "Go does not support early (0-RTT) data",
16
16
17
17
"TLS-ECH-Client-NoNPN": "We don't support NPN",
18
18
@@ -30,8 +30,12 @@
30
30
"TLS-ECH-Client-NoSupportedConfigs": "We don't support fallback to cleartext when there are no valid ECH configs",
31
31
"TLS-ECH-Client-SkipInvalidPublicName": "We don't support fallback to cleartext when there are no valid ECH configs",
32
32
33
+
"TLS-ECH-Server-EarlyData": "Go does not support early (0-RTT) data",
34
+
"TLS-ECH-Server-EarlyDataRejected": "Go does not support early (0-RTT) data",
35
+
36
+
"CurveTest-Client-Kyber-TLS13": "Temporarily disabled since the curve ID is not exposed and it cannot be correctly configured",
37
+
"CurveTest-Server-Kyber-TLS13": "Temporarily disabled since the curve ID is not exposed and it cannot be correctly configured",
33
38
34
-
"*ECH-Server*": "no ECH server support",
35
39
"SendV2ClientHello*": "We don't support SSLv2",
36
40
"*QUIC*": "No QUIC support",
37
41
"Compliance-fips*": "No FIPS",
@@ -229,5 +233,11 @@
229
233
"EarlyData-UnexpectedHandshake-Server-TLS13": "TODO: first pass, this should be fixed",
230
234
"EarlyData-CipherMismatch-Client-TLS13": "TODO: first pass, this should be fixed",
231
235
"Resume-Server-UnofferedCipher-TLS13": "TODO: first pass, this should be fixed"
0 commit comments