Closed v0lkan closed 1 year ago
Looks like boringcrypto is in the mainline now:
RUN GOEXPERIMENT=boringcrypto go build . && \
go tool nm fips-echo-server > tags.txt && \
grep '_Cfunc__goboringcrypto_' tags.txt 1> /dev/null
ref:
Also update the documentation that FIPS mode incurs performance overhead; if you can use Age encryption, better stick with it.
some ref: https://www.druva.com/blog/overhead-boringssl-fips-mode-go
Done.
Right now Aegis is based on standard go, which is not FIPS compliant.
One option to attain compliance is to base the code on boring crytpo fork instead:
In this Dockerfile, my-golang-boringcrypto:latest should be replaced with your actual BoringCrypto Go image. If you don't have this image, you will need to create one. Here's an example of how you can do it:
Clone the BoringCrypto Go repository: git clone https://go.googlesource.com/go && cd go Check out the dev.boringcrypto branch: git checkout dev.boringcrypto Build Go: cd src && ./all.bash Once Go is built, you can use it to create a Docker image.
This Dockerfile will create a Docker image with the BoringCrypto build of Go, which you can use as the builder image in your application's Dockerfile. Remember to replace my-golang-boringcrypto:latest in the application Dockerfile with the name and tag of the BoringCrypto Go Docker image you created.
Please note that this information is based on the state of Go, Docker, and BoringCrypto as of my last update in September 2021, and things might have changed