Commit 9a2fbe5
authored
Build releases against the FIPS 140-3 validated Go crypto module (#6262)
## Changes
Build released binaries with `GOFIPS140=v1.0.0`. This links the FIPS
140-3 validated Go Cryptographic Module into the binary and defaults
FIPS 140-3 mode on, so no runtime flag is needed.
## Why
Regulated environments (FedRAMP, IL5) require cryptography to come from
a validated module. This has to be set at build time: the runtime
`GODEBUG=fips140=on` only toggles the mode on whatever module was
already linked, so without the build variable, there is no validated
module in the binary and no certificate to cite.
Pinned to a frozen version rather than an alias. `v1.0.0` is the version
covered by CMVP certificate `#5247`
This changes behavior for everyone, not just regulated users: the TLS
client offers only FIPS-approved suites (6 instead of 13, dropping
ChaCha20 and CBC)
CI coverage for the FIPS build is added separately in #6193
## Tests
Ran the whole unit and acceptance suite against a FIPS build — no
failures. Also confirmed all six release targets (linux/darwin/windows x
amd64/arm64) cross-compile with the variable set; none of the platforms
Go excludes from FIPS mode are in our matrix.
_This PR was written by Claude Code._1 parent 18bb9c1 commit 9a2fbe5
2 files changed
Lines changed: 8 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
10 | 17 | | |
11 | 18 | | |
12 | 19 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
0 commit comments