/*
 Copyright (C) 2013 Aaron Lindsay <aaron@aclindsay.com>
*/

package main

import (
	"crypto/sha256"
	"fmt"
	"io"
	"os"
)

func HashFile(filename string) (string, error) {
	//TODO change to sha512?
	hashfn := sha256.New()

	infile, err := os.Open(filename)
	if err != nil {
		return "", err
	}
	defer infile.Close()

	_, err = io.Copy(hashfn, infile)
	if err != nil {
		return "", err
	}

	return fmt.Sprintf("%x", hashfn.Sum(nil)), nil
}
