Haskell implementation of SHA / SHA2 hash functions