Skip to content

Commit

Permalink
[dev.boringcrypto] cmd/compile: remove the awful boringcrypto kludge
Browse files Browse the repository at this point in the history
CL 60271 introduced this “AwfulBoringCryptoKludge.”
iant approved that CL saying “As long as it stays out of master...”

Now that the rsa and ecdsa code uses boring.Cache, the
“boring unsafe.Pointer” fields are gone from the key structs, and this
code is no longer needed. So delete it.

With the kludge deleted, we are one step closer to being able to merge
dev.boringcrypto into master.

For #51940.

Change-Id: Ie549db14b0b699c306dded2a2163f18f31d45530
Reviewed-on: https://go-review.googlesource.com/c/go/+/395884
Reviewed-by: Ian Lance Taylor <[email protected]>
Reviewed-by: Ian Lance Taylor <[email protected]>
  • Loading branch information
rsc committed Apr 29, 2022
1 parent e845f57 commit cdcb4b6
Show file tree
Hide file tree
Showing 3 changed files with 3 additions and 28 deletions.
2 changes: 1 addition & 1 deletion misc/boring/VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
7
8
2 changes: 2 additions & 0 deletions src/cmd/compile/internal/amd64/versions_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

// When using GOEXPERIMENT=boringcrypto, the test program links in the boringcrypto syso,
// which does not respect GOAMD64, so we skip the test if boringcrypto is enabled.
//go:build !boringcrypto

package amd64_test
Expand Down
27 changes: 0 additions & 27 deletions src/cmd/compile/internal/reflectdata/reflect.go
Original file line number Diff line number Diff line change
Expand Up @@ -1156,33 +1156,6 @@ func writeType(t *types.Type) *obj.LSym {
// for security, only the exported fields.
case types.TSTRUCT:
fields := t.Fields().Slice()

// omitFieldForAwfulBoringCryptoKludge reports whether
// the field t should be omitted from the reflect data.
// In the crypto/... packages we omit an unexported field
// named "boring", to keep from breaking client code that
// expects rsa.PublicKey etc to have only public fields.
// As the name suggests, this is an awful kludge, but it is
// limited to the dev.boringcrypto branch and avoids
// much more invasive effects elsewhere.
omitFieldForAwfulBoringCryptoKludge := func(t *types.Field) bool {
if t.Sym == nil || t.Sym.Name != "boring" || t.Sym.Pkg == nil {
return false
}
path := t.Sym.Pkg.Path
if t.Sym.Pkg == types.LocalPkg {
path = base.Ctxt.Pkgpath
}
return strings.HasPrefix(path, "crypto/")
}
newFields := fields[:0:0]
for _, t1 := range fields {
if !omitFieldForAwfulBoringCryptoKludge(t1) {
newFields = append(newFields, t1)
}
}
fields = newFields

for _, t1 := range fields {
writeType(t1.Type)
}
Expand Down

0 comments on commit cdcb4b6

Please sign in to comment.