Проверить режим FIPS в golang boringssl

#go #fips #boringssl

#Вперед #fips #boringssl

Вопрос:

как проверить, включен ли режим fips для двоичного файла в golang dev boring crypto branch? Я не вижу простого способа, кроме внутренних тестов golang

Ответ №1:

Из этого файла:

https://go.googlesource.com/go/ /dev.boringcrypto/src/crypto/tls/fipsonly/fipsonly.go

 // Package fipsonly restricts all TLS configuration to FIPS-approved settings.
//
// The effect is triggered by importing the package anywhere in a program, as in:
//
//  import _ "crypto/tls/fipsonly"
//
// This package only exists in the dev.boringcrypto branch of Go.
  

При включении этого оператора импорта в вашу программу он будет компилироваться только в том случае, если вы используете ветку dev.boringcrypto.

Вот тест main.go:

 package main

import (
    "fmt"
    _ "crypto/tls/fipsonly"
)

func main() {
    fmt.Println("Hello FIPS")
}
  

Используя ветку dev.boringcrypto Go:

 $ go version
go version go1.12.9b4 linux/amd64
$ go run main.go
Hello FIPS
  

Использование обычной версии Go:

 $ go version
go version go1.12.9 darwin/amd64
$ go run main.go
main.go:4:2: cannot find package "crypto/tls/fipsonly" in any of:
    /Users/ray/.gimme/versions/go1.12.9.darwin.amd64/src/crypto/tls/fipsonly (from $GOROOT)
    /Users/ray/go/src/crypto/tls/fipsonly (from $GOPATH)