Take into account the OpenSSL FIPS mode when setting GODEBUG=fips140 #1519
+343
−105
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
As agreed in https://github.com/microsoft/go-lab/blob/main/docs/adr/0012-remove-gofips.md, we should set
GODEBUG=fips140=on
if OpenSSL is in FIPS mode. We are currently only taking into account the kernel FIPS mode (aka/proc/sys/crypto/fips_enabled
).This PR adds the missing check. I had to factor the OpenSSL init logic into its own package,
crypto/internal/backend/internal/opensslsetup
, so that it can be used incrypto/internal/backend/fips140
without creating a dependency cycle.I've also added some much needed tests to the OpenSSL library selection logic and improved the
TestDependencies
script to reduce the chance of upstream conflicts.For #1445.