apotiki-0.5.1: System/Apotiki/FileInfo.hs
module System.Apotiki.FileInfo (sha256sum, sha1sum, md5sum, fileinfo) where
import qualified Data.ByteString as B
import qualified Crypto.Hash.SHA256 as SHA256
import qualified Crypto.Hash.SHA1 as SHA1
import qualified Crypto.Hash.MD5 as MD5
import qualified Text.Printf as P
import qualified Data.Map as M
gensum input hashfn = B.unpack (hashfn input) >>= P.printf "%02x"
sha256sum input = gensum input SHA256.hash
sha1sum input = gensum input SHA1.hash
md5sum input = gensum input MD5.hash
fileinfo input = M.fromList [("Size", show $ B.length input),
("MD5sum", md5sum input),
("SHA1", sha1sum input),
("SHA256", sha256sum input)]