[dev.boringcrypto] crypto/boring: expose boring.Enabled()

This will let applications check whether they are using BoringCrypto
without making assumptions.

Change-Id: I704304aa4f2095029d536a91708e8b9efddec01c
Reviewed-on: https://go-review.googlesource.com/c/go/+/250499
Run-TryBot: Filippo Valsorda <filippo@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Trust: Filippo Valsorda <filippo@golang.org>
Reviewed-by: Katie Hockman <katie@golang.org>
This commit is contained in:
Filippo Valsorda 2020-08-25 11:14:05 -04:00
parent 3782421230
commit ef2b318974
3 changed files with 39 additions and 0 deletions

View File

@ -0,0 +1,16 @@
// Copyright 2020 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// Package boring exposes functions that are only available when building with
// Go+BoringCrypto. This package is available on all targets as long as the
// Go+BoringCrypto toolchain is used. Use the Enabled function to determine
// whether the BoringCrypto core is actually in use.
package boring
import "crypto/internal/boring"
// Enabled reports whether BoringCrypto handles supported crypto operations.
func Enabled() bool {
return boring.Enabled
}

View File

@ -0,0 +1,20 @@
// Copyright 2020 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package boring_test
import (
"crypto/boring"
"runtime"
"testing"
)
func TestEnabled(t *testing.T) {
supportedPlatform := runtime.GOOS == "linux" && runtime.GOARCH == "amd64"
if supportedPlatform && !boring.Enabled() {
t.Error("Enabled returned false on a supported platform")
} else if !supportedPlatform && boring.Enabled() {
t.Error("Enabled returned true on an unsupported platform")
}
}

View File

@ -393,6 +393,9 @@ var depsRules = `
crypto/internal/boring/sig, crypto/internal/boring/fipstls
< crypto/tls/fipsonly;
crypto/internal/boring
< crypto/boring;
# crypto-aware packages
NET, crypto/rand, mime/quotedprintable