When you use a hash function that implements hash.Hash, you need to use Write() to provide the data before calling Sum().
// Correct usage of hash.Hash
h:=sha256.New()h.Write(data)sum:=h.Sum(nil)// 'sum' contains the SHA256 sum of 'data'
Since the Sum() member function takes a byte array as an argument, it is a common mistake to believe that this argument contains the data to be hashed. In reality, this argument contains some data to which the hash will be appended.
// Incorrect usage of hash.Hash
h:=sha256.New()sum:=h.Sum(data)// wrong: 'sum' contains 'data' followed by the SHA256 sum of an empty string
This rule detects these erroneous usages of hash.Hash.