RepoJournal
Go

@golang

Go and the standard library - backend infrastructure at scale

Keep up with Go in about 3 minutes a day: what actually shipped — the commits, pull requests, releases, and security advisories that matter.

One email a day. Unsubscribe in one click.

Pick a date

Topics: Go Infrastructure Full archive →

The Wire · Showcase

CRYPTO/X509 HOSTNAME VERIFICATION CUT FROM QUADRATIC TO LINEAR

By RepoJournal · Filed · About Go

Go's x509 certificate verification just got exponentially faster for domains with large SAN lists, eliminating a pathological case that scaled by hostname labels times certificate entries.

The crypto/x509 package shipped a critical optimization [1] that eliminates quadratic behavior in VerifyHostname when processing certificates with dozens of Subject Alternative Name entries. Previously, matchHostnames looped over every SAN and called strings.Split on the same hostname each time, causing verification time to scale with SAN count multiplied by hostname label count. This gets you from O(n*m) to O(n) on the common path. Separately, debug/gosym [2] fixed symbol handling for generic functions by masking bracketed expressions rather than removing them, preserving string indices and improving support for instantiated generics. The tools team is tightening gopls code generation: addtest [3] now emits t.Context() for Go 1.24+ modules instead of context.Background(), while analysis passes are broadening their heuristics [4] to detect test-only symbols by file name, not just function name. Finally, golang/crypto addressed a resource exhaustion vulnerability [5] in SSH server authentication by capping total userauth attempts at 128 per connection, closing a loop that would process requests indefinitely if clients triggered PartialSuccessError responses.

One email a day. Unsubscribe in one click.

Action items

References

  1. [1] crypto/x509: split candidate hostname only once golang/go
  2. [2] debug/gosym: mask bracketed expressions rather than remove them golang/go
  3. [3] gopls/internal/golang: addtest: emit t.Context() for Go 1.24+ golang/tools
  4. [4] go/analysis/passes/inline: broaden "from own test" skip criterion golang/tools
  5. [5] ssh: cap total userauth attempts per server connection golang/crypto

Quick answers

What shipped in Go on May 28, 2026?
Go's x509 certificate verification just got exponentially faster for domains with large SAN lists, eliminating a pathological case that scaled by hostname labels times certificate entries. In total, 20 commits landed.
What were the notable Go updates?
crypto/x509: split candidate hostname only once, debug/gosym: mask bracketed expressions rather than remove them, and gopls/internal/golang: addtest: emit t.Context() for Go 1.24+.

More from @golang

Daily updates, in your inbox

Follow Go

Keep up with Go in about 3 minutes a day: what actually shipped — the commits, pull requests, releases, and security advisories that matter.

or

One email a day. Unsubscribe in one click. Read a past issue →

Elsewhere on the wire

Want every project, not just this one?