Files
mautrix-telegram/pkg/gotd/crypto/sha256.go
T
2025-06-27 20:03:37 -07:00

30 lines
415 B
Go

package crypto
import (
"crypto/sha256"
"hash"
"sync"
)
// SHA256 returns SHA256 hash.
func SHA256(from ...[]byte) []byte {
h := getSHA256()
defer sha256Pool.Put(h)
for _, b := range from {
_, _ = h.Write(b)
}
return h.Sum(nil)
}
var sha256Pool = &sync.Pool{
New: func() interface{} {
return sha256.New()
},
}
func getSHA256() hash.Hash {
h := sha256Pool.Get().(hash.Hash)
h.Reset()
return h
}