diff options
Diffstat (limited to 'shelf/hash.go')
| -rw-r--r-- | shelf/hash.go | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/shelf/hash.go b/shelf/hash.go new file mode 100644 index 0000000..eea81d5 --- /dev/null +++ b/shelf/hash.go @@ -0,0 +1,28 @@ +package shelf + +import ( + "crypto/sha256" + "encoding/hex" + "io" + "os" +) + +func hashFile(name string) (string, error) { + var file *os.File + + if f, err := os.Open(name); err != nil { + return "", err + } else { + file = f + } + + defer file.Close() + + hash := sha256.New() + + if _, err := io.Copy(hash, file); err != nil { + return "", err + } + + return hex.EncodeToString(hash.Sum(nil)), nil +} |
