Crypto-4.2.5: Collects together existing Haskell cryptographic functions into a package

Safe Haskell | Safe-Infered

Data.Digest.SHA2

Description

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.

Synopsis

- 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] -> Hash256

`sha256` currently requires that the bitSize of `a` divide 32

sha256Ascii :: String -> Hash256

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

type Hash256 = Hash8 Word32

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

`sha384` currently requires that the bitSize of `a` divide 64

sha512Ascii :: String -> Hash512

type Hash512 = Hash8 Word64

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

`sha384` currently requires that the bitSize of `a` divide 64

sha384Ascii :: String -> Hash384

data Hash384

Instances

Eq Hash384 |
Ord Hash384 |
Show Hash384 |
Hash Hash384 |

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

`sha224` currently requires that the bitSize of `a` divide 32

sha224Ascii :: String -> Hash224

data Hash224

Instances

Eq Hash224 |
Ord Hash224 |
Show Hash224 |
Hash Hash224 |

toOctets :: Hash h => h -> [Word8]