Fork of the Go standard TLS library, providing low-level access to the ClientHello for mimicry purposes.
Find a file
Daniel McCarney 4cb059fbbf crypto/tls: test with FIPS 140-3 TLS mode
For tests that are interested in testing the difference between TLS in
FIPS 140-3 required mode or otherwise two new helpers are introduced,
runWithFIPSEnabled and runWithFIPSDisabled. They take care of forcing
the correct TLS FIPS 140-3 state regardless of the overal GODEBUG=fips
state, and restoring it afterwards.

For the tests that use features or test data not appropriate for
TLS in FIPS 140-3 required mode we add skips. For some tests we can make
them appropriate for both TLS FIPS 140-3 required or not by tweaking some
parameters that weren't important to the subject under test, but would
otherwise preclude TLS FIPS 140-3 required mode (e.g. because they used
TLS 1.0 when the test could use TLS 1.2 instead). For others, switching
test certificates to a RSA 2048 hierarchy is sufficient. We avoid
regenerating the existing RSA 1024 certs as 2048 since it would
invalidate recorded static flow data.

Tests that rely on static message flows (primarily the client and server
handshake) tests are skipped due to FIPS mode being non-deterministic
and inappropriate for this style of testing.

Change-Id: I311f3828dac890bb3ff8ebda6ed73d50f0797110
Reviewed-on: https://go-review.googlesource.com/c/go/+/629736
Reviewed-by: Roland Shoemaker <roland@golang.org>
Reviewed-by: Filippo Valsorda <filippo@golang.org>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
2024-11-22 00:00:26 +00:00
fipsonly crypto/tls: FIPS 140-3 mode 2024-11-21 16:34:27 +00:00
internal/fips140tls crypto/tls: FIPS 140-3 mode 2024-11-21 16:34:27 +00:00
testdata crypto/ecdsa: implement deterministic and hedged signatures 2024-11-19 23:02:26 +00:00
alert.go crypto/tls: add ech client support 2024-05-23 03:10:12 +00:00
auth.go crypto/tls: FIPS 140-3 mode 2024-11-21 16:34:27 +00:00
auth_test.go crypto/tls: test with FIPS 140-3 TLS mode 2024-11-22 00:00:26 +00:00
bogo_config.json crypto/tls: add server-side ECH 2024-11-21 22:50:04 +00:00
bogo_shim_test.go crypto/tls: test with FIPS 140-3 TLS mode 2024-11-22 00:00:26 +00:00
cache.go crypto/tls: use SessionState on the client side 2023-05-24 23:56:41 +00:00
cache_test.go crypto/tls: add a certificate cache implementation 2022-11-07 19:46:27 +00:00
cipher_suites.go all: rename crypto/internal/fips to crypto/internal/fips140 2024-11-20 20:28:34 +00:00
common.go crypto/tls: add server-side ECH 2024-11-21 22:50:04 +00:00
common_string.go crypto/tls: implement X25519Kyber768Draft00 2024-05-22 14:56:25 +00:00
conn.go crypto/tls: add ech client support 2024-05-23 03:10:12 +00:00
conn_test.go crypto/tls: test with FIPS 140-3 TLS mode 2024-11-22 00:00:26 +00:00
defaults.go crypto/tls: FIPS 140-3 mode 2024-11-21 16:34:27 +00:00
ech.go crypto/tls: add server-side ECH 2024-11-21 22:50:04 +00:00
ech_test.go crypto/tls: add ech client support 2024-05-23 03:10:12 +00:00
example_test.go all: make use of builtin clear 2024-03-27 18:23:49 +00:00
fips_test.go crypto/tls: test with FIPS 140-3 TLS mode 2024-11-22 00:00:26 +00:00
generate_cert.go crypto/tls: delete unnecessary line of return 2022-08-08 15:22:02 +00:00
handshake_client.go crypto/tls: add server-side ECH 2024-11-21 22:50:04 +00:00
handshake_client_test.go crypto/tls: test with FIPS 140-3 TLS mode 2024-11-22 00:00:26 +00:00
handshake_client_tls13.go crypto/tls: add server-side ECH 2024-11-21 22:50:04 +00:00
handshake_messages.go crypto/tls: add server-side ECH 2024-11-21 22:50:04 +00:00
handshake_messages_test.go crypto/tls: add server-side ECH 2024-11-21 22:50:04 +00:00
handshake_server.go crypto/tls: add server-side ECH 2024-11-21 22:50:04 +00:00
handshake_server_test.go crypto/tls: test with FIPS 140-3 TLS mode 2024-11-22 00:00:26 +00:00
handshake_server_tls13.go crypto/tls: add server-side ECH 2024-11-21 22:50:04 +00:00
handshake_test.go crypto/tls: test with FIPS 140-3 TLS mode 2024-11-22 00:00:26 +00:00
handshake_unix_test.go all: use new "unix" build tag where appropriate 2022-03-29 16:24:51 +00:00
key_agreement.go crypto/tls: implement X25519Kyber768Draft00 2024-05-22 14:56:25 +00:00
key_schedule.go all: rename crypto/internal/fips to crypto/internal/fips140 2024-11-20 20:28:34 +00:00
key_schedule_test.go all: rename crypto/internal/fips to crypto/internal/fips140 2024-11-20 20:28:34 +00:00
link_test.go all: use ":" for compiler generated symbols 2022-08-09 11:28:56 +00:00
prf.go all: rename crypto/internal/fips to crypto/internal/fips140 2024-11-20 20:28:34 +00:00
prf_test.go crypto/tls: remove SSLv3 support 2019-08-27 22:24:05 +00:00
quic.go crypto/tls: fix typo in quicError 2024-08-14 18:08:03 +00:00
quic_test.go crypto/tls: apply QUIC session event flag to QUICResumeSession events 2024-06-25 17:08:08 +00:00
ticket.go crypto/tls: improved 0-RTT QUIC API 2024-05-22 17:23:54 +00:00
ticket_test.go crypto/tls: avoid referencing potentially unused symbols in init 2023-05-26 15:24:38 +00:00
tls.go net/http: check GetConfigForClient in server.ServeTLS 2024-06-07 17:57:01 +00:00
tls_test.go crypto/tls: test with FIPS 140-3 TLS mode 2024-11-22 00:00:26 +00:00