})
// Check that all crypto packages compile (and test correctly, in longmode) with fips.
- if fipsSupported() {
+ if t.fipsSupported() {
// Test standard crypto packages with fips140=on.
t.registerTest("GODEBUG=fips140=on go test crypto/...", &goTest{
variant: "gofips140",
return false
}
-func fipsSupported() bool {
+func (t *tester) fipsSupported() bool {
// Use GOFIPS140 or GOEXPERIMENT=boringcrypto, but not both.
if strings.Contains(goexperiment, "boringcrypto") {
return false
goos == "aix":
return false
}
+
+ // For now, FIPS+ASAN doesn't need to work.
+ // If this is made to work, also re-enable the test in check_test.go.
+ if t.asan {
+ return false
+ }
+
return true
}
// crypto/internal/fips140deps and then call it to unpoison the range
// before reading it, but it is unclear whether that would then cause
// false negatives. For now, FIPS+ASAN doesn't need to work.
- // If this is made to work, also re-enable the test in check_test.go.
+ // If this is made to work, also re-enable the test in check_test.go
+ // and in cmd/dist/test.go.
panic("fips140: cannot verify in asan mode")
}
if asan.Enabled {
// Verification panics with asan; don't bother.
t.Skipf("skipping with -asan")
- return
}
cmd := testenv.Command(t, os.Args[0], "-test.v", "-test.run=TestFIPSCheck")