hash-addressed-0.1.0.0: library/HashAddressed/HashFunction.hs
module HashAddressed.HashFunction
(
{- * Type -} HashFunction (..),
{- * Examples -} sha256,
)
where
import Essentials
import Fold.Pure (Fold (..))
import System.IO (FilePath)
import qualified Crypto.Hash.SHA256 as Hash
import qualified Data.ByteString as Strict
import qualified Data.ByteString.Base16 as Base16
import qualified Data.ByteString.Char8 as Strict.ByteString.Char8
newtype HashFunction = HashFunction (Fold Strict.ByteString FilePath)
sha256 :: HashFunction
sha256 = HashFunction Fold
{ initial = Hash.init
, step = Hash.update
, extract = Strict.ByteString.Char8.unpack . Base16.encode . Hash.finalize
}