Go's Hash is explicitly specified to never return an error on Write(), and our own decoding functions only check for length which is gonna be right in every case so it makes no sense returning errors from these functions.
Use sha256.Sum256() and drop duplicating Sum() completely.