neo-go/pkg/wire/util/Checksum/checksum.go
decentralisedkev f8979fe7af
Fix lint errors (#182)
* golint and minor changes to make code readable
2019-03-17 18:26:35 +00:00

33 lines
684 B
Go

package checksum
import (
"bytes"
"encoding/binary"
"github.com/CityOfZion/neo-go/pkg/crypto/hash"
)
// Compare calculates the checksum of b
// then compares it with the `have` checksum passed as a parameter
func Compare(have uint32, b []byte) bool {
want := FromBytes(b)
return have == want
}
// FromBuf calculates the checksum of a buffer
func FromBuf(buf *bytes.Buffer) uint32 {
return FromBytes(buf.Bytes())
}
// FromBytes calculates the checksum of a byte slice
func FromBytes(buf []byte) uint32 {
b, err := hash.DoubleSha256(buf)
if err != nil {
return 0
}
// checksum := SumSHA256(SumSHA256(buf.Bytes()))
return binary.LittleEndian.Uint32(b.Bytes()[:4])
}