CL 402595 changes all usages of 20 bytes hash to 32 bytes hash by using
notsha256.
However, since CL 454836, notsha256 is not necessary anymore, so this CL
reverts those changes to 20 bytes hash using cmd/internal/hash package.
Updates #51940
Updates #64751
Change-Id: Icb08d5a0d8032a3c4d050ff7b2298d31c483b88b
Reviewed-on: https://go-review.googlesource.com/c/go/+/610597
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Auto-Submit: Cuong Manh Le <cuong.manhle.vn@gmail.com>
Reviewed-by: Keith Randall <khr@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Keith Randall <khr@golang.org>
// Clobber only functions where the hash of the function name matches a pattern.
// Useful for binary searching for a miscompiled function.
hstr := ""
- for _, b := range hash.Sum32([]byte(lv.f.Name)) {
+ for _, b := range hash.Sum20([]byte(lv.f.Name)) {
hstr += fmt.Sprintf("%08b", b)
}
if !strings.HasSuffix(hstr, h) {
// For now, we assume there is no circular dependencies among
// hashed symbols.
func (w *writer) contentHash(s *LSym) goobj.HashType {
- h := hash.New32()
+ h := hash.New20()
var tmp [14]byte
// Include the size of the symbol in the hash.
sb.SetType(sym.SRODATA)
ldr.SetAttrSpecial(s, true)
sb.SetReachable(true)
- sb.SetSize(hash.Size32)
+ sb.SetSize(hash.Size20)
slices.SortFunc(ctxt.Library, func(a, b *sym.Library) int {
return strings.Compare(a.Pkg, b.Pkg)
})
- h := hash.New32()
+ h := hash.New20()
for _, l := range ctxt.Library {
h.Write(l.Fingerprint[:])
}
return name
}
if isType {
- hb := hash.Sum32([]byte(name[5:]))
+ hb := hash.Sum20([]byte(name[5:]))
prefix := "type:"
if name[5] == '.' {
prefix = "type:."
if j == -1 || j <= i {
j = len(name)
}
- hb := hash.Sum32([]byte(name[i+1 : j]))
+ hb := hash.Sum20([]byte(name[i+1 : j]))
return name[:i+1] + base64.StdEncoding.EncodeToString(hb[:6]) + name[j:]
}