148 lines
1.8 KiB
Go
148 lines
1.8 KiB
Go
package checksum
|
|
|
|
import (
|
|
"hash"
|
|
"hash/fnv"
|
|
)
|
|
|
|
type (
|
|
Fnv32 struct {
|
|
d hash.Hash
|
|
}
|
|
Fnv32a struct {
|
|
d hash.Hash
|
|
}
|
|
Fnv64 struct {
|
|
d hash.Hash
|
|
}
|
|
Fnv64a struct {
|
|
d hash.Hash
|
|
}
|
|
Fnv128 struct {
|
|
d hash.Hash
|
|
}
|
|
Fnv128a struct {
|
|
d hash.Hash
|
|
}
|
|
)
|
|
|
|
func (m *Fnv32) String() string {
|
|
return "fnv32"
|
|
}
|
|
|
|
func (m *Fnv32) Append(data []byte) {
|
|
if m.d == nil {
|
|
m.d = fnv.New32()
|
|
}
|
|
|
|
m.d.Write(data)
|
|
}
|
|
|
|
func (m *Fnv32) Finish() []byte {
|
|
if m.d == nil {
|
|
m.d = fnv.New32()
|
|
}
|
|
|
|
return m.d.Sum(nil)
|
|
}
|
|
|
|
func (m *Fnv32a) String() string {
|
|
return "fnv32a"
|
|
}
|
|
|
|
func (m *Fnv32a) Append(data []byte) {
|
|
if m.d == nil {
|
|
m.d = fnv.New32a()
|
|
}
|
|
|
|
m.d.Write(data)
|
|
}
|
|
|
|
func (m *Fnv32a) Finish() []byte {
|
|
if m.d == nil {
|
|
m.d = fnv.New32a()
|
|
}
|
|
|
|
return m.d.Sum(nil)
|
|
}
|
|
|
|
func (m *Fnv64) String() string {
|
|
return "fnv64"
|
|
}
|
|
|
|
func (m *Fnv64) Append(data []byte) {
|
|
if m.d == nil {
|
|
m.d = fnv.New64()
|
|
}
|
|
|
|
m.d.Write(data)
|
|
}
|
|
|
|
func (m *Fnv64) Finish() []byte {
|
|
if m.d == nil {
|
|
m.d = fnv.New64()
|
|
}
|
|
|
|
return m.d.Sum(nil)
|
|
}
|
|
|
|
func (m *Fnv64a) String() string {
|
|
return "fnv64a"
|
|
}
|
|
|
|
func (m *Fnv64a) Append(data []byte) {
|
|
if m.d == nil {
|
|
m.d = fnv.New64a()
|
|
}
|
|
|
|
m.d.Write(data)
|
|
}
|
|
|
|
func (m *Fnv64a) Finish() []byte {
|
|
if m.d == nil {
|
|
m.d = fnv.New64a()
|
|
}
|
|
|
|
return m.d.Sum(nil)
|
|
}
|
|
|
|
func (m *Fnv128) String() string {
|
|
return "fnv128"
|
|
}
|
|
|
|
func (m *Fnv128) Append(data []byte) {
|
|
if m.d == nil {
|
|
m.d = fnv.New128()
|
|
}
|
|
|
|
m.d.Write(data)
|
|
}
|
|
|
|
func (m *Fnv128) Finish() []byte {
|
|
if m.d == nil {
|
|
m.d = fnv.New128()
|
|
}
|
|
|
|
return m.d.Sum(nil)
|
|
}
|
|
|
|
func (m *Fnv128a) String() string {
|
|
return "fnv128a"
|
|
}
|
|
|
|
func (m *Fnv128a) Append(data []byte) {
|
|
if m.d == nil {
|
|
m.d = fnv.New128a()
|
|
}
|
|
|
|
m.d.Write(data)
|
|
}
|
|
|
|
func (m *Fnv128a) Finish() []byte {
|
|
if m.d == nil {
|
|
m.d = fnv.New128a()
|
|
}
|
|
|
|
return m.d.Sum(nil)
|
|
}
|