sha-streams-0.1.0: bin/sha-streams.hs
module Main (main) where
import qualified System.IO.Streams as S
import Data.Digest.Pure.SHA
import System.IO.Streams.SHA
main :: IO ()
main = do
d1 <- S.withFileAsInput "bin/sha-streams.hs" $ \is -> do
(is1, getSha1) <- sha1Input is
(is224, getSha224) <- sha224Input is1
(is256, getSha256) <- sha256Input is224
(is384, getSha384) <- sha384Input is256
(is512, getSha512) <- sha512Input is384
S.skipToEof is512
d1 <- getSha1
putStrLn $ showDigest d1
getSha224 >>= putStrLn . showDigest
getSha256 >>= putStrLn . showDigest
getSha384 >>= putStrLn . showDigest
getSha512 >>= putStrLn . showDigest
return d1
-- This must throw an UnmatchedSHAException.
S.withFileAsInput "System/IO/Streams/SHA.hs" $ \is -> do
(is1, _) <- sha1Input is
is1' <- checkedSha1Input d1 is1
S.skipToEof is1'