package in_toto

import (
	"crypto/sha256"
	"crypto/sha512"
	"hash"
)

/*
getHashMapping returns a mapping from hash algorithm to supported hash
interface.
*/
func getHashMapping() map[string]func() hash.Hash {
	return map[string]func() hash.Hash{
		"sha256": sha256.New,
		"sha512": sha512.New,
		"sha384": sha512.New384,
	}
}

/*
hashToHex calculates the hash over data based on hash algorithm h.
*/
func hashToHex(h hash.Hash, data []byte) []byte {
	h.Write(data)
	// We need to use h.Sum(nil) here, because otherwise hash.Sum() appends
	// the hash to the passed data. So instead of having only the hash
	// we would get: "dataHASH"
	return h.Sum(nil)
}