This repository has been archived on 2024-04-07. You can view files and clone it, but cannot push or open issues or pull requests.
moneroutil/keccak.go

40 lines
641 B
Go

package moneroutil
import (
"golang.org/x/crypto/sha3"
)
const (
ChecksumLength = 4
HashLength = 32
)
type Hash [HashLength]byte
type Checksum [ChecksumLength]byte
func Keccak256(data ...[]byte) (result Hash) {
h := sha3.NewLegacyKeccak256()
for _, b := range data {
h.Write(b)
}
r := h.Sum(nil)
copy(result[:], r)
return
}
func GetChecksum(data ...[]byte) (result Checksum) {
keccak256 := Keccak256(data...)
copy(result[:], keccak256[:4])
return
}
func Keccak512(data ...[]byte) (result Hash) {
h := sha3.NewLegacyKeccak512()
for _, b := range data {
h.Write(b)
}
r := h.Sum(nil)
copy(result[:], r)
return
}