Implements SHA-256, SHA-384, SHA-512, and SHA-224 as defined in FIPS 180-2 http://csrc.nist.gov/publications/fips/fips180-2/fips180-2withchangenotice.pdf.

- sha256 :: (Bits a, Integral a) => [a] -> Hash256
- sha256Ascii :: String -> Hash256
- type Hash256 = Hash8 Word32
- sha512 :: (Bits a, Integral a) => [a] -> Hash512
- sha512Ascii :: String -> Hash512
- type Hash512 = Hash8 Word64
- sha384 :: (Bits a, Integral a) => [a] -> Hash384
- sha384Ascii :: String -> Hash384
- data Hash384
- sha224 :: (Bits a, Integral a) => [a] -> Hash224
- sha224Ascii :: String -> Hash224
- data Hash224
- toOctets :: Hash h => h -> [Word8]

# Documentation

sha256 :: (Bits a, Integral a) => [a] -> Hash256Source

`sha256`

currently requires that the bitSize of `a`

divide 32

sha256Ascii :: String -> Hash256Source

`shaXXXAscii`

assumes that all characters of the strings are
ISO-latin-1 characters. ie. each characters fits in one octet.

sha512 :: (Bits a, Integral a) => [a] -> Hash512Source

`sha384`

currently requires that the bitSize of `a`

divide 64

sha512Ascii :: String -> Hash512Source

sha384 :: (Bits a, Integral a) => [a] -> Hash384Source

`sha384`

currently requires that the bitSize of `a`

divide 64

sha384Ascii :: String -> Hash384Source

sha224 :: (Bits a, Integral a) => [a] -> Hash224Source

`sha224`

currently requires that the bitSize of `a`

divide 32

sha224Ascii :: String -> Hash224Source