]> Cypherpunks.ru repositories - gostls13.git/blob - src/internal/godebugs/table.go
crypto/tls: remove RSA KEX ciphers from the default list
[gostls13.git] / src / internal / godebugs / table.go
1 // Copyright 2023 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
4
5 // Package godebugs provides a table of known GODEBUG settings,
6 // for use by a variety of other packages, including internal/godebug,
7 // runtime, runtime/metrics, and cmd/go/internal/load.
8 package godebugs
9
10 // An Info describes a single known GODEBUG setting.
11 type Info struct {
12         Name    string // name of the setting ("panicnil")
13         Package string // package that uses the setting ("runtime")
14         Changed int    // minor version when default changed, if any; 21 means Go 1.21
15         Old     string // value that restores behavior prior to Changed
16         Opaque  bool   // setting does not export information to runtime/metrics using [internal/godebug.Setting.IncNonDefault]
17 }
18
19 // All is the table of known settings, sorted by Name.
20 //
21 // Note: After adding entries to this table, run 'go generate runtime/metrics'
22 // to update the runtime/metrics doc comment.
23 // (Otherwise the runtime/metrics test will fail.)
24 //
25 // Note: After adding entries to this table, update the list in doc/godebug.md as well.
26 // (Otherwise the test in this package will fail.)
27 var All = []Info{
28         {Name: "execerrdot", Package: "os/exec"},
29         {Name: "gocachehash", Package: "cmd/go"},
30         {Name: "gocachetest", Package: "cmd/go"},
31         {Name: "gocacheverify", Package: "cmd/go"},
32         {Name: "gotypesalias", Package: "go/types"},
33         {Name: "http2client", Package: "net/http"},
34         {Name: "http2debug", Package: "net/http", Opaque: true},
35         {Name: "http2server", Package: "net/http"},
36         {Name: "httplaxcontentlength", Package: "net/http", Changed: 22, Old: "1"},
37         {Name: "httpmuxgo121", Package: "net/http", Changed: 22, Old: "1"},
38         {Name: "installgoroot", Package: "go/build"},
39         {Name: "jstmpllitinterp", Package: "html/template"},
40         //{Name: "multipartfiles", Package: "mime/multipart"},
41         {Name: "multipartmaxheaders", Package: "mime/multipart"},
42         {Name: "multipartmaxparts", Package: "mime/multipart"},
43         {Name: "multipathtcp", Package: "net"},
44         {Name: "netdns", Package: "net", Opaque: true},
45         {Name: "panicnil", Package: "runtime", Changed: 21, Old: "1"},
46         {Name: "randautoseed", Package: "math/rand"},
47         {Name: "tarinsecurepath", Package: "archive/tar"},
48         {Name: "tls10server", Package: "crypto/tls", Changed: 22, Old: "1"},
49         {Name: "tlsmaxrsasize", Package: "crypto/tls"},
50         {Name: "tlsrsakex", Package: "crypto/tls", Changed: 22, Old: "1"},
51         {Name: "x509sha1", Package: "crypto/x509"},
52         {Name: "x509usefallbackroots", Package: "crypto/x509"},
53         {Name: "zipinsecurepath", Package: "archive/zip"},
54 }
55
56 // Lookup returns the Info with the given name.
57 func Lookup(name string) *Info {
58         // binary search, avoiding import of sort.
59         lo := 0
60         hi := len(All)
61         for lo < hi {
62                 m := int(uint(lo+hi) >> 1)
63                 mid := All[m].Name
64                 if name == mid {
65                         return &All[m]
66                 }
67                 if name < mid {
68                         hi = m
69                 } else {
70                         lo = m + 1
71                 }
72         }
73         return nil
74 }