diff options
author | Emiliano Ciavatta | 2020-04-01 12:21:58 +0000 |
---|---|---|
committer | Emiliano Ciavatta | 2020-04-01 12:21:58 +0000 |
commit | 2b9ccbe76c6975fe7cd09a3260ba459d59b9970a (patch) | |
tree | 6eaf94a797261f2db0736d4abe999db219fcad7a /utils.go |
Initial commit
Diffstat (limited to 'utils.go')
-rw-r--r-- | utils.go | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/utils.go b/utils.go new file mode 100644 index 0000000..cc99d93 --- /dev/null +++ b/utils.go @@ -0,0 +1,30 @@ +package main + +import ( + "crypto/sha256" + "io" + "log" + "os" +) + +const invalidHashString = "invalid" + +func Sha256Sum(fileName string) (string, error) { + f, err := os.Open(fileName) + if err != nil { + return invalidHashString, err + } + defer func() { + err = f.Close() + if err != nil { + log.Println("Cannot close file " + fileName) + } + }() + + h := sha256.New() + if _, err := io.Copy(h, f); err != nil { + return invalidHashString, err + } + + return string(h.Sum(nil)), nil +} |