github.com/pivotal-cf/go-pivnet/v6@v6.0.2/sha256sum/sha256.go (about) 1 package sha256sum 2 3 import ( 4 "crypto/sha256" 5 "fmt" 6 "io" 7 "os" 8 ) 9 10 type FileSummer struct { 11 } 12 13 func NewFileSummer() *FileSummer { 14 return &FileSummer{} 15 } 16 17 func (f FileSummer) SumFile(filepath string) (string, error) { 18 fileToSum, err := os.Open(filepath) 19 if err != nil { 20 return "", err 21 } 22 defer fileToSum.Close() 23 24 hash := sha256.New() 25 _, err = io.Copy(hash, fileToSum) 26 if err != nil { 27 return "", err 28 } 29 30 return fmt.Sprintf("%x", hash.Sum(nil)), nil 31 }