package utils import ( "encoding/hex" "hash" "io" ) type CheckSum struct { io.Reader Hash hash.Hash } func (cs *CheckSum) Read(buf []byte) (int, error) { n, err := cs.Reader.Read(buf) if err == nil { cs.Hash.Write(buf[:n]) } return n, err } func (cs *CheckSum) Sum() string { return hex.EncodeToString(cs.Hash.Sum(nil)) }