Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add the "Go BoringCrypto" toolchain for CI and releases #16

Open
wants to merge 4 commits into
base: main
Choose a base branch
from

Conversation

atheriel
Copy link
Collaborator

@atheriel atheriel commented Apr 4, 2022

This PR adds a second Go toolchain to the GitHub Actions environments used for builds, tests, and releases, as well as the
related changes to GoReleaser's configuration. This was proposed in #2.

This "BoringCrypto" fork of Go's toolchain is maintained by the Go team, and has become the de-facto way to provide FIPS-validated crypto for software written in Go. Binary releases are only available for Linux, so that is the only platform we can support ourselves for now.

With this change, releases will have a new "rskey-fips" archive for the linux_amd64 target. This version of rskey will refuse to use cryptographic algorithms that are not FIPS approved, and may be broken in unexpected ways -- some caution is warranted. However, for customers that are in theory bound by FIPS-140, this may be a very appealing distribution of the tool.

This PR does not include documentation for these new release binaries because no release yet includes them.

This allows for builds that make use of multiple local toolchains.

Signed-off-by: Aaron Jacobs <[email protected]>
This commit adds a second Go toolchain to the GitHub Actions
environments used for builds, tests, and releases, as well as the
related changes to GoReleaser's configuration.

This "BoringCrypto" fork of Go's toolchain [0] is maintained by the Go
team, and has become the de-facto way to provide FIPS-validated crypto
for software written in Go. Binary releases are only available for
Linux, so that is the only platform we can support ourselves for now.

With this change, releases will have a new "rskey-fips" archive for the
linux_amd64 target. This version of rskey will refuse to use
cryptographic algorithms that are not FIPS approved, and may be broken
in unexpected ways -- some caution is warranted. However, for customers
that are in theory bound by FIPS-140, this may be a very appealing
distribution of the tool.

This commit does not include documentation for these new release
binaries because no release yet includes them.

[0]: https://go.googlesource.com/go/+/dev.boringcrypto/README.boringcrypto.md

Signed-off-by: Aaron Jacobs <[email protected]>
This uses GitHub Action's federated OIDC support, so it does not require
any explicit credentials.

Signed-off-by: Aaron Jacobs <[email protected]>
@atheriel atheriel force-pushed the goboring-fips-builds branch 3 times, most recently from 663f0c4 to 3b50538 Compare April 5, 2022 15:41
@atheriel atheriel added product-feature Enhancements that would be made in coordination with downstream products process Automation or process improvements; chores labels Apr 5, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
process Automation or process improvements; chores product-feature Enhancements that would be made in coordination with downstream products
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant