cryptonite-0.24: Cryptography Primitives sink

LicenseBSD-style
MaintainerVincent Hanquez <vincent@snarc.org>
Stabilityexperimental
Portabilityunknown
Safe HaskellNone
LanguageHaskell2010

Crypto.Hash.Algorithms

Contents

Description

Definitions of known hash algorithms

Synopsis

Documentation

class HashAlgorithm a

Class representing hashing algorithms.

The interface presented here is update in place and lowlevel. the Hash module takes care of hidding the mutable interface properly.

Instances

HashAlgorithm Blake2s_256 
HashAlgorithm Blake2s_224 
HashAlgorithm Blake2s_160 
HashAlgorithm Blake2sp_256 
HashAlgorithm Blake2sp_224 
HashAlgorithm Blake2b_512 
HashAlgorithm Blake2b_384 
HashAlgorithm Blake2b_256 
HashAlgorithm Blake2b_224 
HashAlgorithm Blake2b_160 
HashAlgorithm Blake2bp_512 
HashAlgorithm MD2 
HashAlgorithm MD4 
HashAlgorithm MD5 
HashAlgorithm SHA1 
HashAlgorithm SHA224 
HashAlgorithm SHA256 
HashAlgorithm SHA384 
HashAlgorithm SHA512 
HashAlgorithm SHA512t_256 
HashAlgorithm SHA512t_224 
HashAlgorithm SHA3_512 
HashAlgorithm SHA3_384 
HashAlgorithm SHA3_256 
HashAlgorithm SHA3_224 
HashAlgorithm Keccak_512 
HashAlgorithm Keccak_384 
HashAlgorithm Keccak_256 
HashAlgorithm Keccak_224 
HashAlgorithm RIPEMD160 
HashAlgorithm Tiger 
HashAlgorithm Skein256_256 
HashAlgorithm Skein256_224 
HashAlgorithm Skein512_512 
HashAlgorithm Skein512_384 
HashAlgorithm Skein512_256 
HashAlgorithm Skein512_224 
HashAlgorithm Whirlpool 
(IsDivisibleBy8 bitlen, KnownNat bitlen) => HashAlgorithm (SHAKE256 bitlen) 
(IsDivisibleBy8 bitlen, KnownNat bitlen) => HashAlgorithm (SHAKE128 bitlen) 
(IsDivisibleBy8 bitlen, KnownNat bitlen, IsAtLeast bitlen 8, IsAtMost bitlen 512) => HashAlgorithm (Blake2bp bitlen) 
(IsDivisibleBy8 bitlen, KnownNat bitlen, IsAtLeast bitlen 8, IsAtMost bitlen 256) => HashAlgorithm (Blake2sp bitlen) 
(IsDivisibleBy8 bitlen, KnownNat bitlen, IsAtLeast bitlen 8, IsAtMost bitlen 512) => HashAlgorithm (Blake2b bitlen) 
(IsDivisibleBy8 bitlen, KnownNat bitlen, IsAtLeast bitlen 8, IsAtMost bitlen 256) => HashAlgorithm (Blake2s bitlen) 

hash algorithms

data Blake2s_160

Blake2s (160 bits) cryptographic hash algorithm

Constructors

Blake2s_160 

data Blake2s_224

Blake2s (224 bits) cryptographic hash algorithm

Constructors

Blake2s_224 

data Blake2s_256

Blake2s (256 bits) cryptographic hash algorithm

Constructors

Blake2s_256 

data Blake2sp_224

Blake2sp (224 bits) cryptographic hash algorithm

Constructors

Blake2sp_224 

data Blake2sp_256

Blake2sp (256 bits) cryptographic hash algorithm

Constructors

Blake2sp_256 

data Blake2b_160

Blake2b (160 bits) cryptographic hash algorithm

Constructors

Blake2b_160 

data Blake2b_224

Blake2b (224 bits) cryptographic hash algorithm

Constructors

Blake2b_224 

data Blake2b_256

Blake2b (256 bits) cryptographic hash algorithm

Constructors

Blake2b_256 

data Blake2b_384

Blake2b (384 bits) cryptographic hash algorithm

Constructors

Blake2b_384 

data Blake2b_512

Blake2b (512 bits) cryptographic hash algorithm

Constructors

Blake2b_512 

data Blake2bp_512

Blake2bp (512 bits) cryptographic hash algorithm

Constructors

Blake2bp_512 

data MD2

MD2 cryptographic hash algorithm

Constructors

MD2 

data MD4

MD4 cryptographic hash algorithm

Constructors

MD4 

data MD5

MD5 cryptographic hash algorithm

Constructors

MD5 

data SHA1

SHA1 cryptographic hash algorithm

Constructors

SHA1 

data SHA224

SHA224 cryptographic hash algorithm

Constructors

SHA224 

data SHA256

SHA256 cryptographic hash algorithm

Constructors

SHA256 

data SHA384

SHA384 cryptographic hash algorithm

Constructors

SHA384 

data SHA512

SHA512 cryptographic hash algorithm

Constructors

SHA512 

data SHA512t_224

SHA512t (224 bits) cryptographic hash algorithm

Constructors

SHA512t_224 

data SHA512t_256

SHA512t (256 bits) cryptographic hash algorithm

Constructors

SHA512t_256 

data RIPEMD160

RIPEMD160 cryptographic hash algorithm

Constructors

RIPEMD160 

data Tiger

Tiger cryptographic hash algorithm

Constructors

Tiger 

data Keccak_224

Keccak (224 bits) cryptographic hash algorithm

Constructors

Keccak_224 

data Keccak_256

Keccak (256 bits) cryptographic hash algorithm

Constructors

Keccak_256 

data Keccak_384

Keccak (384 bits) cryptographic hash algorithm

Constructors

Keccak_384 

data Keccak_512

Keccak (512 bits) cryptographic hash algorithm

Constructors

Keccak_512 

data SHA3_224

SHA3 (224 bits) cryptographic hash algorithm

Constructors

SHA3_224 

data SHA3_256

SHA3 (256 bits) cryptographic hash algorithm

Constructors

SHA3_256 

data SHA3_384

SHA3 (384 bits) cryptographic hash algorithm

Constructors

SHA3_384 

data SHA3_512

SHA3 (512 bits) cryptographic hash algorithm

Constructors

SHA3_512 

data SHAKE128 bitlen

SHAKE128 (128 bits) extendable output function. Supports an arbitrary digest size (multiple of 8 bits), to be specified as a type parameter of kind Nat.

Note: outputs from SHAKE128 n and SHAKE128 m for the same input are correlated (one being a prefix of the other). Results are unrelated to SHAKE256 results.

Constructors

SHAKE128 

Instances

Show (SHAKE128 bitlen) 
(IsDivisibleBy8 bitlen, KnownNat bitlen) => HashAlgorithm (SHAKE128 bitlen) 
type HashBlockSize (SHAKE128 bitlen) = 168 
type HashDigestSize (SHAKE128 bitlen) 
type HashInternalContextSize (SHAKE128 bitlen) = 376 

data SHAKE256 bitlen

SHAKE256 (256 bits) extendable output function. Supports an arbitrary digest size (multiple of 8 bits), to be specified as a type parameter of kind Nat.

Note: outputs from SHAKE256 n and SHAKE256 m for the same input are correlated (one being a prefix of the other). Results are unrelated to SHAKE128 results.

Constructors

SHAKE256 

Instances

Show (SHAKE256 bitlen) 
(IsDivisibleBy8 bitlen, KnownNat bitlen) => HashAlgorithm (SHAKE256 bitlen) 
type HashBlockSize (SHAKE256 bitlen) = 136 
type HashDigestSize (SHAKE256 bitlen) 
type HashInternalContextSize (SHAKE256 bitlen) = 344 

data Blake2b bitlen

Fast cryptographic hash.

It is especially known to target 64bits architectures.

Known supported digest sizes:

  • Blake2b 160
  • Blake2b 224
  • Blake2b 256
  • Blake2b 384
  • Blake2b 512

Constructors

Blake2b 

Instances

Show (Blake2b bitlen) 
(IsDivisibleBy8 bitlen, KnownNat bitlen, IsAtLeast bitlen 8, IsAtMost bitlen 512) => HashAlgorithm (Blake2b bitlen) 
type HashBlockSize (Blake2b bitlen) = 128 
type HashDigestSize (Blake2b bitlen) 
type HashInternalContextSize (Blake2b bitlen) = 361 

data Blake2bp bitlen

Constructors

Blake2bp 

Instances

Show (Blake2bp bitlen) 
(IsDivisibleBy8 bitlen, KnownNat bitlen, IsAtLeast bitlen 8, IsAtMost bitlen 512) => HashAlgorithm (Blake2bp bitlen) 
type HashBlockSize (Blake2bp bitlen) = 128 
type HashDigestSize (Blake2bp bitlen) 
type HashInternalContextSize (Blake2bp bitlen) = 2325 

data Blake2s bitlen

Fast and secure alternative to SHA1 and HMAC-SHA1

It is espacially known to target 32bits architectures.

known supported digest sizes:

  • Blake2s 160
  • Blake2s 224
  • Blake2s 256

Constructors

Blake2s 

Instances

Show (Blake2s bitlen) 
(IsDivisibleBy8 bitlen, KnownNat bitlen, IsAtLeast bitlen 8, IsAtMost bitlen 256) => HashAlgorithm (Blake2s bitlen) 
type HashBlockSize (Blake2s bitlen) = 64 
type HashDigestSize (Blake2s bitlen) 
type HashInternalContextSize (Blake2s bitlen) = 185 

data Blake2sp bitlen

Constructors

Blake2sp 

Instances

Show (Blake2sp bitlen) 
(IsDivisibleBy8 bitlen, KnownNat bitlen, IsAtLeast bitlen 8, IsAtMost bitlen 256) => HashAlgorithm (Blake2sp bitlen) 
type HashBlockSize (Blake2sp bitlen) = 64 
type HashDigestSize (Blake2sp bitlen) 
type HashInternalContextSize (Blake2sp bitlen) = 2185 

data Skein256_224

Skein256 (224 bits) cryptographic hash algorithm

Constructors

Skein256_224 

data Skein256_256

Skein256 (256 bits) cryptographic hash algorithm

Constructors

Skein256_256 

data Skein512_224

Skein512 (224 bits) cryptographic hash algorithm

Constructors

Skein512_224 

data Skein512_256

Skein512 (256 bits) cryptographic hash algorithm

Constructors

Skein512_256 

data Skein512_384

Skein512 (384 bits) cryptographic hash algorithm

Constructors

Skein512_384 

data Skein512_512

Skein512 (512 bits) cryptographic hash algorithm

Constructors

Skein512_512 

data Whirlpool

Whirlpool cryptographic hash algorithm

Constructors

Whirlpool