On Thu, Jul 4, 2024, 4:47 AM Michael Oguidan <michaelogui...@gmail.com>
wrote:

> Hi Dagood,
> Please can you tell me what FIPS's for? And why we can't use it outside
> Google.
>

You can use GOEXPERIMENT=boringcrypto, as described in the README.
However, there is no promise that the Go team will fix any problems you
encounter.  It is not supported.

Ian



On Thursday, July 4, 2024 at 1:45:37 AM UTC dagood wrote:
>
>> Hi Devin,
>>
>> The FIPS functionality in Go (which, to be clear, is not supported for
>> use outside of Google) is documented here: 
>> go/src/crypto/internal/boring/README.md
>> at release-branch.go1.21 · golang/go (github.com)
>> <https://github.com/golang/go/blob/release-branch.go1.21/src/crypto/internal/boring/README.md>,
>> and it's used by setting GOEXPERIMENT=boringcrypto.
>>
>> The GOEXPERIMENT=systemcrypto is a feature of the Microsoft fork of Go,
>> not official Go.
>> https://github.com/microsoft/go/blob/microsoft/main/eng/doc/fips/README.md is
>> actually hosted in the microsoft/go repository, where that fork is
>> maintained. I work on it, and I'm happy to help. (And, if you have any more
>> questions related to this fork in the future, feel free to file a GitHub
>> issue on microsoft/go directly.)
>>
>> The issue doesn't seem related to Grafana, but rather because *wire *was
>> built with the Microsoft fork of Go but without specifying a backend, but
>> with GOFIPS=1. *wire* isn't able to be compatible with FIPS without a
>> backend, but it sees that FIPS is requested, so it fails safe. It isn't
>> clear what the caller's intent is and failing is an opportunity to catch a
>> mistake. You should either:
>>
>>    1. not set GOFIPS=1 until after calling *wire* (if at all!) or
>>    2. build *wire* with GOEXPERIMENT=systemcrypto.
>>
>> I would default to (1). But if you are trying to make a FIPS compliant
>> package build process, (2) would be the step towards that.
>>
>> Whether or not you need GOFIPS=1 at all depends on the purpose of your
>> script/build process.
>>
>> > using GOFIPS=1 worked just fine on Go 1.20.5, however appears not to be
>> the case anymore.
>>
>> Yes, we only added this failsafe as of 1.21 of Microsoft Go. The first
>> bullet in the 1.21 changelog
>> <https://github.com/microsoft/go/blob/microsoft/main/eng/doc/fips/README.md#go-121-aug-2023>
>>  has
>> some details.
>>
>> Hope that helps!
>>
> --
> You received this message because you are subscribed to the Google Groups
> "golang-nuts" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to golang-nuts+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/golang-nuts/64e0eb63-0daa-4d5a-8fac-ad48dcb803dfn%40googlegroups.com
> <https://groups.google.com/d/msgid/golang-nuts/64e0eb63-0daa-4d5a-8fac-ad48dcb803dfn%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/CAOyqgcWsNz1ywa4A8n-f%3Ds620ghFSxbsJ%2B4p0YAst3JZPJnEWA%40mail.gmail.com.

Reply via email to