POC of replacing boringcrypto with Go's native FIPS-140-3 module #636
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.
Warning
Disclaimer: How boilerplate sets up FIPS compliance should definitely follow Red Hat guidelines. I don't know what they are. I am just making this MR to raise awareness of this configuration and its brief history.
GOEXPERIMENT=boringcrypto+ the"crypto/tls/fipsonly"library, which requiredCGO_ENABLED=1was initially used. The cgo requirement necessitated a swap fromubi*-micro-->ubi*-minimalimages.GOEXPERIMENT=strictfipsruntime, added in Use GOEXPERIMENT=strictfipsruntime #298 when Red Hat was supporting an internal fork of Go, this was deprecated and removed in OSD-29374: Drop unsupportedstrictfipsruntimeGOEXPERIMENT for Go 1.23 #516I think this makes FIPS compliance easier than ever - especially the removal of the cgo requirement should allow usage of
ubi*-microimages again if there's a desire for that (fewer CVEs to manage!).