License | BSD-style |
---|---|
Maintainer | Vincent Hanquez <vincent@snarc.org> |
Stability | experimental |
Portability | unknown |
Safe Haskell | None |
Language | Haskell2010 |
Crypto.Hash.Algorithms
Contents
Description
Definitions of known hash algorithms
Synopsis
- class HashAlgorithm a
- data Blake2s_160 = Blake2s_160
- data Blake2s_224 = Blake2s_224
- data Blake2s_256 = Blake2s_256
- data Blake2sp_224 = Blake2sp_224
- data Blake2sp_256 = Blake2sp_256
- data Blake2b_160 = Blake2b_160
- data Blake2b_224 = Blake2b_224
- data Blake2b_256 = Blake2b_256
- data Blake2b_384 = Blake2b_384
- data Blake2b_512 = Blake2b_512
- data Blake2bp_512 = Blake2bp_512
- data MD2 = MD2
- data MD4 = MD4
- data MD5 = MD5
- data SHA1 = SHA1
- data SHA224 = SHA224
- data SHA256 = SHA256
- data SHA384 = SHA384
- data SHA512 = SHA512
- data SHA512t_224 = SHA512t_224
- data SHA512t_256 = SHA512t_256
- data RIPEMD160 = RIPEMD160
- data Tiger = Tiger
- data Keccak_224 = Keccak_224
- data Keccak_256 = Keccak_256
- data Keccak_384 = Keccak_384
- data Keccak_512 = Keccak_512
- data SHA3_224 = SHA3_224
- data SHA3_256 = SHA3_256
- data SHA3_384 = SHA3_384
- data SHA3_512 = SHA3_512
- data SHAKE128 (bitlen :: Nat ) = SHAKE128
- data SHAKE256 (bitlen :: Nat ) = SHAKE256
- data Blake2b (bitlen :: Nat ) = Blake2b
- data Blake2bp (bitlen :: Nat ) = Blake2bp
- data Blake2s (bitlen :: Nat ) = Blake2s
- data Blake2sp (bitlen :: Nat ) = Blake2sp
- data Skein256_224 = Skein256_224
- data Skein256_256 = Skein256_256
- data Skein512_224 = Skein512_224
- data Skein512_256 = Skein512_256
- data Skein512_384 = Skein512_384
- data Skein512_512 = Skein512_512
- data Whirlpool = Whirlpool
Documentation
class HashAlgorithm a Source #
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.
Minimal complete definition
hashBlockSize , hashDigestSize , hashInternalContextSize , hashInternalInit , hashInternalUpdate , hashInternalFinalize
Instances
Hash algorithms
data Blake2s_160 Source #
Blake2s (160 bits) cryptographic hash algorithm
Constructors
Blake2s_160 |
Instances
data Blake2s_224 Source #
Blake2s (224 bits) cryptographic hash algorithm
Constructors
Blake2s_224 |
Instances
data Blake2s_256 Source #
Blake2s (256 bits) cryptographic hash algorithm
Constructors
Blake2s_256 |
Instances
data Blake2sp_224 Source #
Blake2sp (224 bits) cryptographic hash algorithm
Constructors
Blake2sp_224 |
Instances
data Blake2sp_256 Source #
Blake2sp (256 bits) cryptographic hash algorithm
Constructors
Blake2sp_256 |
Instances
data Blake2b_160 Source #
Blake2b (160 bits) cryptographic hash algorithm
Constructors
Blake2b_160 |
Instances
data Blake2b_224 Source #
Blake2b (224 bits) cryptographic hash algorithm
Constructors
Blake2b_224 |
Instances
data Blake2b_256 Source #
Blake2b (256 bits) cryptographic hash algorithm
Constructors
Blake2b_256 |
Instances
data Blake2b_384 Source #
Blake2b (384 bits) cryptographic hash algorithm
Constructors
Blake2b_384 |
Instances
data Blake2b_512 Source #
Blake2b (512 bits) cryptographic hash algorithm
Constructors
Blake2b_512 |
Instances
data Blake2bp_512 Source #
Blake2bp (512 bits) cryptographic hash algorithm
Constructors
Blake2bp_512 |
Instances
MD2 cryptographic hash algorithm
Constructors
MD2 |
Instances
Data MD2 Source # | |
Defined in Crypto.Hash.MD2 Methods gfoldl :: ( forall d b. Data d => c (d -> b) -> d -> c b) -> ( forall g. g -> c g) -> MD2 -> c MD2 Source # gunfold :: ( forall b r. Data b => c (b -> r) -> c r) -> ( forall r. r -> c r) -> Constr -> c MD2 Source # toConstr :: MD2 -> Constr Source # dataTypeOf :: MD2 -> DataType Source # dataCast1 :: Typeable t => ( forall d. Data d => c (t d)) -> Maybe (c MD2 ) Source # dataCast2 :: Typeable t => ( forall d e. ( Data d, Data e) => c (t d e)) -> Maybe (c MD2 ) Source # gmapT :: ( forall b. Data b => b -> b) -> MD2 -> MD2 Source # gmapQl :: (r -> r' -> r) -> r -> ( forall d. Data d => d -> r') -> MD2 -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> ( forall d. Data d => d -> r') -> MD2 -> r Source # gmapQ :: ( forall d. Data d => d -> u) -> MD2 -> [u] Source # gmapQi :: Int -> ( forall d. Data d => d -> u) -> MD2 -> u Source # gmapM :: Monad m => ( forall d. Data d => d -> m d) -> MD2 -> m MD2 Source # gmapMp :: MonadPlus m => ( forall d. Data d => d -> m d) -> MD2 -> m MD2 Source # gmapMo :: MonadPlus m => ( forall d. Data d => d -> m d) -> MD2 -> m MD2 Source # |
|
Show MD2 Source # | |
HashAlgorithm MD2 Source # | |
Defined in Crypto.Hash.MD2 Associated Types type HashBlockSize MD2 :: Nat Source # type HashDigestSize MD2 :: Nat Source # type HashInternalContextSize MD2 :: Nat Source # Methods hashBlockSize :: MD2 -> Int Source # hashDigestSize :: MD2 -> Int Source # hashInternalContextSize :: MD2 -> Int Source # hashInternalInit :: Ptr ( Context MD2 ) -> IO () Source # hashInternalUpdate :: Ptr ( Context MD2 ) -> Ptr Word8 -> Word32 -> IO () Source # hashInternalFinalize :: Ptr ( Context MD2 ) -> Ptr ( Digest MD2 ) -> IO () Source # |
|
HashAlgorithmASN1 MD2 Source # | |
Defined in Crypto.PubKey.RSA.PKCS15 Methods hashDigestASN1 :: ByteArray out => Digest MD2 -> out |
|
type HashBlockSize MD2 Source # | |
Defined in Crypto.Hash.MD2 |
|
type HashDigestSize MD2 Source # | |
Defined in Crypto.Hash.MD2 |
|
type HashInternalContextSize MD2 Source # | |
Defined in Crypto.Hash.MD2 |
MD4 cryptographic hash algorithm
Constructors
MD4 |
Instances
Data MD4 Source # | |
Defined in Crypto.Hash.MD4 Methods gfoldl :: ( forall d b. Data d => c (d -> b) -> d -> c b) -> ( forall g. g -> c g) -> MD4 -> c MD4 Source # gunfold :: ( forall b r. Data b => c (b -> r) -> c r) -> ( forall r. r -> c r) -> Constr -> c MD4 Source # toConstr :: MD4 -> Constr Source # dataTypeOf :: MD4 -> DataType Source # dataCast1 :: Typeable t => ( forall d. Data d => c (t d)) -> Maybe (c MD4 ) Source # dataCast2 :: Typeable t => ( forall d e. ( Data d, Data e) => c (t d e)) -> Maybe (c MD4 ) Source # gmapT :: ( forall b. Data b => b -> b) -> MD4 -> MD4 Source # gmapQl :: (r -> r' -> r) -> r -> ( forall d. Data d => d -> r') -> MD4 -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> ( forall d. Data d => d -> r') -> MD4 -> r Source # gmapQ :: ( forall d. Data d => d -> u) -> MD4 -> [u] Source # gmapQi :: Int -> ( forall d. Data d => d -> u) -> MD4 -> u Source # gmapM :: Monad m => ( forall d. Data d => d -> m d) -> MD4 -> m MD4 Source # gmapMp :: MonadPlus m => ( forall d. Data d => d -> m d) -> MD4 -> m MD4 Source # gmapMo :: MonadPlus m => ( forall d. Data d => d -> m d) -> MD4 -> m MD4 Source # |
|
Show MD4 Source # | |
HashAlgorithm MD4 Source # | |
Defined in Crypto.Hash.MD4 Associated Types type HashBlockSize MD4 :: Nat Source # type HashDigestSize MD4 :: Nat Source # type HashInternalContextSize MD4 :: Nat Source # Methods hashBlockSize :: MD4 -> Int Source # hashDigestSize :: MD4 -> Int Source # hashInternalContextSize :: MD4 -> Int Source # hashInternalInit :: Ptr ( Context MD4 ) -> IO () Source # hashInternalUpdate :: Ptr ( Context MD4 ) -> Ptr Word8 -> Word32 -> IO () Source # hashInternalFinalize :: Ptr ( Context MD4 ) -> Ptr ( Digest MD4 ) -> IO () Source # |
|
type HashBlockSize MD4 Source # | |
Defined in Crypto.Hash.MD4 |
|
type HashDigestSize MD4 Source # | |
Defined in Crypto.Hash.MD4 |
|
type HashInternalContextSize MD4 Source # | |
Defined in Crypto.Hash.MD4 |
MD5 cryptographic hash algorithm
Constructors
MD5 |
Instances
Data MD5 Source # | |
Defined in Crypto.Hash.MD5 Methods gfoldl :: ( forall d b. Data d => c (d -> b) -> d -> c b) -> ( forall g. g -> c g) -> MD5 -> c MD5 Source # gunfold :: ( forall b r. Data b => c (b -> r) -> c r) -> ( forall r. r -> c r) -> Constr -> c MD5 Source # toConstr :: MD5 -> Constr Source # dataTypeOf :: MD5 -> DataType Source # dataCast1 :: Typeable t => ( forall d. Data d => c (t d)) -> Maybe (c MD5 ) Source # dataCast2 :: Typeable t => ( forall d e. ( Data d, Data e) => c (t d e)) -> Maybe (c MD5 ) Source # gmapT :: ( forall b. Data b => b -> b) -> MD5 -> MD5 Source # gmapQl :: (r -> r' -> r) -> r -> ( forall d. Data d => d -> r') -> MD5 -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> ( forall d. Data d => d -> r') -> MD5 -> r Source # gmapQ :: ( forall d. Data d => d -> u) -> MD5 -> [u] Source # gmapQi :: Int -> ( forall d. Data d => d -> u) -> MD5 -> u Source # gmapM :: Monad m => ( forall d. Data d => d -> m d) -> MD5 -> m MD5 Source # gmapMp :: MonadPlus m => ( forall d. Data d => d -> m d) -> MD5 -> m MD5 Source # gmapMo :: MonadPlus m => ( forall d. Data d => d -> m d) -> MD5 -> m MD5 Source # |
|
Show MD5 Source # | |
HashAlgorithm MD5 Source # | |
Defined in Crypto.Hash.MD5 Associated Types type HashBlockSize MD5 :: Nat Source # type HashDigestSize MD5 :: Nat Source # type HashInternalContextSize MD5 :: Nat Source # Methods hashBlockSize :: MD5 -> Int Source # hashDigestSize :: MD5 -> Int Source # hashInternalContextSize :: MD5 -> Int Source # hashInternalInit :: Ptr ( Context MD5 ) -> IO () Source # hashInternalUpdate :: Ptr ( Context MD5 ) -> Ptr Word8 -> Word32 -> IO () Source # hashInternalFinalize :: Ptr ( Context MD5 ) -> Ptr ( Digest MD5 ) -> IO () Source # |
|
HashAlgorithmASN1 MD5 Source # | |
Defined in Crypto.PubKey.RSA.PKCS15 Methods hashDigestASN1 :: ByteArray out => Digest MD5 -> out |
|
type HashBlockSize MD5 Source # | |
Defined in Crypto.Hash.MD5 |
|
type HashDigestSize MD5 Source # | |
Defined in Crypto.Hash.MD5 |
|
type HashInternalContextSize MD5 Source # | |
Defined in Crypto.Hash.MD5 |
SHA1 cryptographic hash algorithm
Constructors
SHA1 |
Instances
Data SHA1 Source # | |
Defined in Crypto.Hash.SHA1 Methods gfoldl :: ( forall d b. Data d => c (d -> b) -> d -> c b) -> ( forall g. g -> c g) -> SHA1 -> c SHA1 Source # gunfold :: ( forall b r. Data b => c (b -> r) -> c r) -> ( forall r. r -> c r) -> Constr -> c SHA1 Source # toConstr :: SHA1 -> Constr Source # dataTypeOf :: SHA1 -> DataType Source # dataCast1 :: Typeable t => ( forall d. Data d => c (t d)) -> Maybe (c SHA1 ) Source # dataCast2 :: Typeable t => ( forall d e. ( Data d, Data e) => c (t d e)) -> Maybe (c SHA1 ) Source # gmapT :: ( forall b. Data b => b -> b) -> SHA1 -> SHA1 Source # gmapQl :: (r -> r' -> r) -> r -> ( forall d. Data d => d -> r') -> SHA1 -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> ( forall d. Data d => d -> r') -> SHA1 -> r Source # gmapQ :: ( forall d. Data d => d -> u) -> SHA1 -> [u] Source # gmapQi :: Int -> ( forall d. Data d => d -> u) -> SHA1 -> u Source # gmapM :: Monad m => ( forall d. Data d => d -> m d) -> SHA1 -> m SHA1 Source # gmapMp :: MonadPlus m => ( forall d. Data d => d -> m d) -> SHA1 -> m SHA1 Source # gmapMo :: MonadPlus m => ( forall d. Data d => d -> m d) -> SHA1 -> m SHA1 Source # |
|
Show SHA1 Source # | |
HashAlgorithm SHA1 Source # | |
Defined in Crypto.Hash.SHA1 Associated Types type HashBlockSize SHA1 :: Nat Source # type HashDigestSize SHA1 :: Nat Source # type HashInternalContextSize SHA1 :: Nat Source # Methods hashBlockSize :: SHA1 -> Int Source # hashDigestSize :: SHA1 -> Int Source # hashInternalContextSize :: SHA1 -> Int Source # hashInternalInit :: Ptr ( Context SHA1 ) -> IO () Source # hashInternalUpdate :: Ptr ( Context SHA1 ) -> Ptr Word8 -> Word32 -> IO () Source # hashInternalFinalize :: Ptr ( Context SHA1 ) -> Ptr ( Digest SHA1 ) -> IO () Source # |
|
HashAlgorithmASN1 SHA1 Source # | |
Defined in Crypto.PubKey.RSA.PKCS15 Methods hashDigestASN1 :: ByteArray out => Digest SHA1 -> out |
|
type HashBlockSize SHA1 Source # | |
Defined in Crypto.Hash.SHA1 |
|
type HashDigestSize SHA1 Source # | |
Defined in Crypto.Hash.SHA1 |
|
type HashInternalContextSize SHA1 Source # | |
Defined in Crypto.Hash.SHA1 |
SHA224 cryptographic hash algorithm
Constructors
SHA224 |
Instances
SHA256 cryptographic hash algorithm
Constructors
SHA256 |
Instances
SHA384 cryptographic hash algorithm
Constructors
SHA384 |
Instances
SHA512 cryptographic hash algorithm
Constructors
SHA512 |
Instances
data SHA512t_224 Source #
SHA512t (224 bits) cryptographic hash algorithm
Constructors
SHA512t_224 |
Instances
data SHA512t_256 Source #
SHA512t (256 bits) cryptographic hash algorithm
Constructors
SHA512t_256 |
Instances
RIPEMD160 cryptographic hash algorithm
Constructors
RIPEMD160 |
Instances
Tiger cryptographic hash algorithm
Constructors
Tiger |
Instances
Data Tiger Source # | |
Defined in Crypto.Hash.Tiger Methods gfoldl :: ( forall d b. Data d => c (d -> b) -> d -> c b) -> ( forall g. g -> c g) -> Tiger -> c Tiger Source # gunfold :: ( forall b r. Data b => c (b -> r) -> c r) -> ( forall r. r -> c r) -> Constr -> c Tiger Source # toConstr :: Tiger -> Constr Source # dataTypeOf :: Tiger -> DataType Source # dataCast1 :: Typeable t => ( forall d. Data d => c (t d)) -> Maybe (c Tiger ) Source # dataCast2 :: Typeable t => ( forall d e. ( Data d, Data e) => c (t d e)) -> Maybe (c Tiger ) Source # gmapT :: ( forall b. Data b => b -> b) -> Tiger -> Tiger Source # gmapQl :: (r -> r' -> r) -> r -> ( forall d. Data d => d -> r') -> Tiger -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> ( forall d. Data d => d -> r') -> Tiger -> r Source # gmapQ :: ( forall d. Data d => d -> u) -> Tiger -> [u] Source # gmapQi :: Int -> ( forall d. Data d => d -> u) -> Tiger -> u Source # gmapM :: Monad m => ( forall d. Data d => d -> m d) -> Tiger -> m Tiger Source # gmapMp :: MonadPlus m => ( forall d. Data d => d -> m d) -> Tiger -> m Tiger Source # gmapMo :: MonadPlus m => ( forall d. Data d => d -> m d) -> Tiger -> m Tiger Source # |
|
Show Tiger Source # | |
HashAlgorithm Tiger Source # | |
Defined in Crypto.Hash.Tiger Associated Types type HashBlockSize Tiger :: Nat Source # type HashDigestSize Tiger :: Nat Source # type HashInternalContextSize Tiger :: Nat Source # Methods hashBlockSize :: Tiger -> Int Source # hashDigestSize :: Tiger -> Int Source # hashInternalContextSize :: Tiger -> Int Source # hashInternalInit :: Ptr ( Context Tiger ) -> IO () Source # hashInternalUpdate :: Ptr ( Context Tiger ) -> Ptr Word8 -> Word32 -> IO () Source # hashInternalFinalize :: Ptr ( Context Tiger ) -> Ptr ( Digest Tiger ) -> IO () Source # |
|
type HashBlockSize Tiger Source # | |
Defined in Crypto.Hash.Tiger |
|
type HashDigestSize Tiger Source # | |
Defined in Crypto.Hash.Tiger |
|
type HashInternalContextSize Tiger Source # | |
Defined in Crypto.Hash.Tiger |
data Keccak_224 Source #
Keccak (224 bits) cryptographic hash algorithm
Constructors
Keccak_224 |
Instances
data Keccak_256 Source #
Keccak (256 bits) cryptographic hash algorithm
Constructors
Keccak_256 |
Instances
data Keccak_384 Source #
Keccak (384 bits) cryptographic hash algorithm
Constructors
Keccak_384 |
Instances
data Keccak_512 Source #
Keccak (512 bits) cryptographic hash algorithm
Constructors
Keccak_512 |
Instances
SHA3 (224 bits) cryptographic hash algorithm
Constructors
SHA3_224 |
Instances
SHA3 (256 bits) cryptographic hash algorithm
Constructors
SHA3_256 |
Instances
SHA3 (384 bits) cryptographic hash algorithm
Constructors
SHA3_384 |
Instances
SHA3 (512 bits) cryptographic hash algorithm
Constructors
SHA3_512 |
Instances
data SHAKE128 (bitlen :: Nat ) Source #
SHAKE128 (128 bits) extendable output function. Supports an arbitrary
digest size, to be specified as a type parameter of kind
Nat
.
Note: outputs from
and
SHAKE128
n
for the same input are
correlated (one being a prefix of the other). Results are unrelated to
SHAKE128
m
SHAKE256
results.
Constructors
SHAKE128 |
Instances
KnownNat bitlen => Data ( SHAKE128 bitlen) Source # | |
Defined in Crypto.Hash.SHAKE Methods gfoldl :: ( forall d b. Data d => c (d -> b) -> d -> c b) -> ( forall g. g -> c g) -> SHAKE128 bitlen -> c ( SHAKE128 bitlen) Source # gunfold :: ( forall b r. Data b => c (b -> r) -> c r) -> ( forall r. r -> c r) -> Constr -> c ( SHAKE128 bitlen) Source # toConstr :: SHAKE128 bitlen -> Constr Source # dataTypeOf :: SHAKE128 bitlen -> DataType Source # dataCast1 :: Typeable t => ( forall d. Data d => c (t d)) -> Maybe (c ( SHAKE128 bitlen)) Source # dataCast2 :: Typeable t => ( forall d e. ( Data d, Data e) => c (t d e)) -> Maybe (c ( SHAKE128 bitlen)) Source # gmapT :: ( forall b. Data b => b -> b) -> SHAKE128 bitlen -> SHAKE128 bitlen Source # gmapQl :: (r -> r' -> r) -> r -> ( forall d. Data d => d -> r') -> SHAKE128 bitlen -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> ( forall d. Data d => d -> r') -> SHAKE128 bitlen -> r Source # gmapQ :: ( forall d. Data d => d -> u) -> SHAKE128 bitlen -> [u] Source # gmapQi :: Int -> ( forall d. Data d => d -> u) -> SHAKE128 bitlen -> u Source # gmapM :: Monad m => ( forall d. Data d => d -> m d) -> SHAKE128 bitlen -> m ( SHAKE128 bitlen) Source # gmapMp :: MonadPlus m => ( forall d. Data d => d -> m d) -> SHAKE128 bitlen -> m ( SHAKE128 bitlen) Source # gmapMo :: MonadPlus m => ( forall d. Data d => d -> m d) -> SHAKE128 bitlen -> m ( SHAKE128 bitlen) Source # |
|
Show ( SHAKE128 bitlen) Source # | |
KnownNat bitlen => HashAlgorithm ( SHAKE128 bitlen) Source # | |
Defined in Crypto.Hash.SHAKE Associated Types type HashBlockSize ( SHAKE128 bitlen) :: Nat Source # type HashDigestSize ( SHAKE128 bitlen) :: Nat Source # type HashInternalContextSize ( SHAKE128 bitlen) :: Nat Source # Methods hashBlockSize :: SHAKE128 bitlen -> Int Source # hashDigestSize :: SHAKE128 bitlen -> Int Source # hashInternalContextSize :: SHAKE128 bitlen -> Int Source # hashInternalInit :: Ptr ( Context ( SHAKE128 bitlen)) -> IO () Source # hashInternalUpdate :: Ptr ( Context ( SHAKE128 bitlen)) -> Ptr Word8 -> Word32 -> IO () Source # hashInternalFinalize :: Ptr ( Context ( SHAKE128 bitlen)) -> Ptr ( Digest ( SHAKE128 bitlen)) -> IO () Source # |
|
KnownNat bitlen => HashSHAKE ( SHAKE128 bitlen) Source # | |
Defined in Crypto.Hash.SHAKE |
|
type HashBlockSize ( SHAKE128 bitlen) Source # | |
Defined in Crypto.Hash.SHAKE |
|
type HashDigestSize ( SHAKE128 bitlen) Source # | |
Defined in Crypto.Hash.SHAKE |
|
type HashInternalContextSize ( SHAKE128 bitlen) Source # | |
Defined in Crypto.Hash.SHAKE |
data SHAKE256 (bitlen :: Nat ) Source #
SHAKE256 (256 bits) extendable output function. Supports an arbitrary
digest size, to be specified as a type parameter of kind
Nat
.
Note: outputs from
and
SHAKE256
n
for the same input are
correlated (one being a prefix of the other). Results are unrelated to
SHAKE256
m
SHAKE128
results.
Constructors
SHAKE256 |
Instances
KnownNat bitlen => Data ( SHAKE256 bitlen) Source # | |
Defined in Crypto.Hash.SHAKE Methods gfoldl :: ( forall d b. Data d => c (d -> b) -> d -> c b) -> ( forall g. g -> c g) -> SHAKE256 bitlen -> c ( SHAKE256 bitlen) Source # gunfold :: ( forall b r. Data b => c (b -> r) -> c r) -> ( forall r. r -> c r) -> Constr -> c ( SHAKE256 bitlen) Source # toConstr :: SHAKE256 bitlen -> Constr Source # dataTypeOf :: SHAKE256 bitlen -> DataType Source # dataCast1 :: Typeable t => ( forall d. Data d => c (t d)) -> Maybe (c ( SHAKE256 bitlen)) Source # dataCast2 :: Typeable t => ( forall d e. ( Data d, Data e) => c (t d e)) -> Maybe (c ( SHAKE256 bitlen)) Source # gmapT :: ( forall b. Data b => b -> b) -> SHAKE256 bitlen -> SHAKE256 bitlen Source # gmapQl :: (r -> r' -> r) -> r -> ( forall d. Data d => d -> r') -> SHAKE256 bitlen -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> ( forall d. Data d => d -> r') -> SHAKE256 bitlen -> r Source # gmapQ :: ( forall d. Data d => d -> u) -> SHAKE256 bitlen -> [u] Source # gmapQi :: Int -> ( forall d. Data d => d -> u) -> SHAKE256 bitlen -> u Source # gmapM :: Monad m => ( forall d. Data d => d -> m d) -> SHAKE256 bitlen -> m ( SHAKE256 bitlen) Source # gmapMp :: MonadPlus m => ( forall d. Data d => d -> m d) -> SHAKE256 bitlen -> m ( SHAKE256 bitlen) Source # gmapMo :: MonadPlus m => ( forall d. Data d => d -> m d) -> SHAKE256 bitlen -> m ( SHAKE256 bitlen) Source # |
|
Show ( SHAKE256 bitlen) Source # | |
KnownNat bitlen => HashAlgorithm ( SHAKE256 bitlen) Source # | |
Defined in Crypto.Hash.SHAKE Associated Types type HashBlockSize ( SHAKE256 bitlen) :: Nat Source # type HashDigestSize ( SHAKE256 bitlen) :: Nat Source # type HashInternalContextSize ( SHAKE256 bitlen) :: Nat Source # Methods hashBlockSize :: SHAKE256 bitlen -> Int Source # hashDigestSize :: SHAKE256 bitlen -> Int Source # hashInternalContextSize :: SHAKE256 bitlen -> Int Source # hashInternalInit :: Ptr ( Context ( SHAKE256 bitlen)) -> IO () Source # hashInternalUpdate :: Ptr ( Context ( SHAKE256 bitlen)) -> Ptr Word8 -> Word32 -> IO () Source # hashInternalFinalize :: Ptr ( Context ( SHAKE256 bitlen)) -> Ptr ( Digest ( SHAKE256 bitlen)) -> IO () Source # |
|
KnownNat bitlen => HashSHAKE ( SHAKE256 bitlen) Source # | |
Defined in Crypto.Hash.SHAKE |
|
type HashBlockSize ( SHAKE256 bitlen) Source # | |
Defined in Crypto.Hash.SHAKE |
|
type HashDigestSize ( SHAKE256 bitlen) Source # | |
Defined in Crypto.Hash.SHAKE |
|
type HashInternalContextSize ( SHAKE256 bitlen) Source # | |
Defined in Crypto.Hash.SHAKE |
data Blake2b (bitlen :: Nat ) Source #
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
KnownNat bitlen => Data ( Blake2b bitlen) Source # | |
Defined in Crypto.Hash.Blake2 Methods gfoldl :: ( forall d b. Data d => c (d -> b) -> d -> c b) -> ( forall g. g -> c g) -> Blake2b bitlen -> c ( Blake2b bitlen) Source # gunfold :: ( forall b r. Data b => c (b -> r) -> c r) -> ( forall r. r -> c r) -> Constr -> c ( Blake2b bitlen) Source # toConstr :: Blake2b bitlen -> Constr Source # dataTypeOf :: Blake2b bitlen -> DataType Source # dataCast1 :: Typeable t => ( forall d. Data d => c (t d)) -> Maybe (c ( Blake2b bitlen)) Source # dataCast2 :: Typeable t => ( forall d e. ( Data d, Data e) => c (t d e)) -> Maybe (c ( Blake2b bitlen)) Source # gmapT :: ( forall b. Data b => b -> b) -> Blake2b bitlen -> Blake2b bitlen Source # gmapQl :: (r -> r' -> r) -> r -> ( forall d. Data d => d -> r') -> Blake2b bitlen -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> ( forall d. Data d => d -> r') -> Blake2b bitlen -> r Source # gmapQ :: ( forall d. Data d => d -> u) -> Blake2b bitlen -> [u] Source # gmapQi :: Int -> ( forall d. Data d => d -> u) -> Blake2b bitlen -> u Source # gmapM :: Monad m => ( forall d. Data d => d -> m d) -> Blake2b bitlen -> m ( Blake2b bitlen) Source # gmapMp :: MonadPlus m => ( forall d. Data d => d -> m d) -> Blake2b bitlen -> m ( Blake2b bitlen) Source # gmapMo :: MonadPlus m => ( forall d. Data d => d -> m d) -> Blake2b bitlen -> m ( Blake2b bitlen) Source # |
|
Show ( Blake2b bitlen) Source # | |
( IsDivisibleBy8 bitlen, KnownNat bitlen, IsAtLeast bitlen 8, IsAtMost bitlen 512) => HashAlgorithm ( Blake2b bitlen) Source # | |
Defined in Crypto.Hash.Blake2 Associated Types type HashBlockSize ( Blake2b bitlen) :: Nat Source # type HashDigestSize ( Blake2b bitlen) :: Nat Source # type HashInternalContextSize ( Blake2b bitlen) :: Nat Source # Methods hashBlockSize :: Blake2b bitlen -> Int Source # hashDigestSize :: Blake2b bitlen -> Int Source # hashInternalContextSize :: Blake2b bitlen -> Int Source # hashInternalInit :: Ptr ( Context ( Blake2b bitlen)) -> IO () Source # hashInternalUpdate :: Ptr ( Context ( Blake2b bitlen)) -> Ptr Word8 -> Word32 -> IO () Source # hashInternalFinalize :: Ptr ( Context ( Blake2b bitlen)) -> Ptr ( Digest ( Blake2b bitlen)) -> IO () Source # |
|
type HashBlockSize ( Blake2b bitlen) Source # | |
Defined in Crypto.Hash.Blake2 |
|
type HashDigestSize ( Blake2b bitlen) Source # | |
Defined in Crypto.Hash.Blake2 |
|
type HashInternalContextSize ( Blake2b bitlen) Source # | |
Defined in Crypto.Hash.Blake2 |
data Blake2bp (bitlen :: Nat ) Source #
Constructors
Blake2bp |
Instances
KnownNat bitlen => Data ( Blake2bp bitlen) Source # | |
Defined in Crypto.Hash.Blake2 Methods gfoldl :: ( forall d b. Data d => c (d -> b) -> d -> c b) -> ( forall g. g -> c g) -> Blake2bp bitlen -> c ( Blake2bp bitlen) Source # gunfold :: ( forall b r. Data b => c (b -> r) -> c r) -> ( forall r. r -> c r) -> Constr -> c ( Blake2bp bitlen) Source # toConstr :: Blake2bp bitlen -> Constr Source # dataTypeOf :: Blake2bp bitlen -> DataType Source # dataCast1 :: Typeable t => ( forall d. Data d => c (t d)) -> Maybe (c ( Blake2bp bitlen)) Source # dataCast2 :: Typeable t => ( forall d e. ( Data d, Data e) => c (t d e)) -> Maybe (c ( Blake2bp bitlen)) Source # gmapT :: ( forall b. Data b => b -> b) -> Blake2bp bitlen -> Blake2bp bitlen Source # gmapQl :: (r -> r' -> r) -> r -> ( forall d. Data d => d -> r') -> Blake2bp bitlen -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> ( forall d. Data d => d -> r') -> Blake2bp bitlen -> r Source # gmapQ :: ( forall d. Data d => d -> u) -> Blake2bp bitlen -> [u] Source # gmapQi :: Int -> ( forall d. Data d => d -> u) -> Blake2bp bitlen -> u Source # gmapM :: Monad m => ( forall d. Data d => d -> m d) -> Blake2bp bitlen -> m ( Blake2bp bitlen) Source # gmapMp :: MonadPlus m => ( forall d. Data d => d -> m d) -> Blake2bp bitlen -> m ( Blake2bp bitlen) Source # gmapMo :: MonadPlus m => ( forall d. Data d => d -> m d) -> Blake2bp bitlen -> m ( Blake2bp bitlen) Source # |
|
Show ( Blake2bp bitlen) Source # | |
( IsDivisibleBy8 bitlen, KnownNat bitlen, IsAtLeast bitlen 8, IsAtMost bitlen 512) => HashAlgorithm ( Blake2bp bitlen) Source # | |
Defined in Crypto.Hash.Blake2 Associated Types type HashBlockSize ( Blake2bp bitlen) :: Nat Source # type HashDigestSize ( Blake2bp bitlen) :: Nat Source # type HashInternalContextSize ( Blake2bp bitlen) :: Nat Source # Methods hashBlockSize :: Blake2bp bitlen -> Int Source # hashDigestSize :: Blake2bp bitlen -> Int Source # hashInternalContextSize :: Blake2bp bitlen -> Int Source # hashInternalInit :: Ptr ( Context ( Blake2bp bitlen)) -> IO () Source # hashInternalUpdate :: Ptr ( Context ( Blake2bp bitlen)) -> Ptr Word8 -> Word32 -> IO () Source # hashInternalFinalize :: Ptr ( Context ( Blake2bp bitlen)) -> Ptr ( Digest ( Blake2bp bitlen)) -> IO () Source # |
|
type HashBlockSize ( Blake2bp bitlen) Source # | |
Defined in Crypto.Hash.Blake2 |
|
type HashDigestSize ( Blake2bp bitlen) Source # | |
Defined in Crypto.Hash.Blake2 |
|
type HashInternalContextSize ( Blake2bp bitlen) Source # | |
Defined in Crypto.Hash.Blake2 |
data Blake2s (bitlen :: Nat ) Source #
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
KnownNat bitlen => Data ( Blake2s bitlen) Source # | |
Defined in Crypto.Hash.Blake2 Methods gfoldl :: ( forall d b. Data d => c (d -> b) -> d -> c b) -> ( forall g. g -> c g) -> Blake2s bitlen -> c ( Blake2s bitlen) Source # gunfold :: ( forall b r. Data b => c (b -> r) -> c r) -> ( forall r. r -> c r) -> Constr -> c ( Blake2s bitlen) Source # toConstr :: Blake2s bitlen -> Constr Source # dataTypeOf :: Blake2s bitlen -> DataType Source # dataCast1 :: Typeable t => ( forall d. Data d => c (t d)) -> Maybe (c ( Blake2s bitlen)) Source # dataCast2 :: Typeable t => ( forall d e. ( Data d, Data e) => c (t d e)) -> Maybe (c ( Blake2s bitlen)) Source # gmapT :: ( forall b. Data b => b -> b) -> Blake2s bitlen -> Blake2s bitlen Source # gmapQl :: (r -> r' -> r) -> r -> ( forall d. Data d => d -> r') -> Blake2s bitlen -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> ( forall d. Data d => d -> r') -> Blake2s bitlen -> r Source # gmapQ :: ( forall d. Data d => d -> u) -> Blake2s bitlen -> [u] Source # gmapQi :: Int -> ( forall d. Data d => d -> u) -> Blake2s bitlen -> u Source # gmapM :: Monad m => ( forall d. Data d => d -> m d) -> Blake2s bitlen -> m ( Blake2s bitlen) Source # gmapMp :: MonadPlus m => ( forall d. Data d => d -> m d) -> Blake2s bitlen -> m ( Blake2s bitlen) Source # gmapMo :: MonadPlus m => ( forall d. Data d => d -> m d) -> Blake2s bitlen -> m ( Blake2s bitlen) Source # |
|
Show ( Blake2s bitlen) Source # | |
( IsDivisibleBy8 bitlen, KnownNat bitlen, IsAtLeast bitlen 8, IsAtMost bitlen 256) => HashAlgorithm ( Blake2s bitlen) Source # | |
Defined in Crypto.Hash.Blake2 Associated Types type HashBlockSize ( Blake2s bitlen) :: Nat Source # type HashDigestSize ( Blake2s bitlen) :: Nat Source # type HashInternalContextSize ( Blake2s bitlen) :: Nat Source # Methods hashBlockSize :: Blake2s bitlen -> Int Source # hashDigestSize :: Blake2s bitlen -> Int Source # hashInternalContextSize :: Blake2s bitlen -> Int Source # hashInternalInit :: Ptr ( Context ( Blake2s bitlen)) -> IO () Source # hashInternalUpdate :: Ptr ( Context ( Blake2s bitlen)) -> Ptr Word8 -> Word32 -> IO () Source # hashInternalFinalize :: Ptr ( Context ( Blake2s bitlen)) -> Ptr ( Digest ( Blake2s bitlen)) -> IO () Source # |
|
type HashBlockSize ( Blake2s bitlen) Source # | |
Defined in Crypto.Hash.Blake2 |
|
type HashDigestSize ( Blake2s bitlen) Source # | |
Defined in Crypto.Hash.Blake2 |
|
type HashInternalContextSize ( Blake2s bitlen) Source # | |
Defined in Crypto.Hash.Blake2 |
data Blake2sp (bitlen :: Nat ) Source #
Constructors
Blake2sp |
Instances
KnownNat bitlen => Data ( Blake2sp bitlen) Source # | |
Defined in Crypto.Hash.Blake2 Methods gfoldl :: ( forall d b. Data d => c (d -> b) -> d -> c b) -> ( forall g. g -> c g) -> Blake2sp bitlen -> c ( Blake2sp bitlen) Source # gunfold :: ( forall b r. Data b => c (b -> r) -> c r) -> ( forall r. r -> c r) -> Constr -> c ( Blake2sp bitlen) Source # toConstr :: Blake2sp bitlen -> Constr Source # dataTypeOf :: Blake2sp bitlen -> DataType Source # dataCast1 :: Typeable t => ( forall d. Data d => c (t d)) -> Maybe (c ( Blake2sp bitlen)) Source # dataCast2 :: Typeable t => ( forall d e. ( Data d, Data e) => c (t d e)) -> Maybe (c ( Blake2sp bitlen)) Source # gmapT :: ( forall b. Data b => b -> b) -> Blake2sp bitlen -> Blake2sp bitlen Source # gmapQl :: (r -> r' -> r) -> r -> ( forall d. Data d => d -> r') -> Blake2sp bitlen -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> ( forall d. Data d => d -> r') -> Blake2sp bitlen -> r Source # gmapQ :: ( forall d. Data d => d -> u) -> Blake2sp bitlen -> [u] Source # gmapQi :: Int -> ( forall d. Data d => d -> u) -> Blake2sp bitlen -> u Source # gmapM :: Monad m => ( forall d. Data d => d -> m d) -> Blake2sp bitlen -> m ( Blake2sp bitlen) Source # gmapMp :: MonadPlus m => ( forall d. Data d => d -> m d) -> Blake2sp bitlen -> m ( Blake2sp bitlen) Source # gmapMo :: MonadPlus m => ( forall d. Data d => d -> m d) -> Blake2sp bitlen -> m ( Blake2sp bitlen) Source # |
|
Show ( Blake2sp bitlen) Source # | |
( IsDivisibleBy8 bitlen, KnownNat bitlen, IsAtLeast bitlen 8, IsAtMost bitlen 256) => HashAlgorithm ( Blake2sp bitlen) Source # | |
Defined in Crypto.Hash.Blake2 Associated Types type HashBlockSize ( Blake2sp bitlen) :: Nat Source # type HashDigestSize ( Blake2sp bitlen) :: Nat Source # type HashInternalContextSize ( Blake2sp bitlen) :: Nat Source # Methods hashBlockSize :: Blake2sp bitlen -> Int Source # hashDigestSize :: Blake2sp bitlen -> Int Source # hashInternalContextSize :: Blake2sp bitlen -> Int Source # hashInternalInit :: Ptr ( Context ( Blake2sp bitlen)) -> IO () Source # hashInternalUpdate :: Ptr ( Context ( Blake2sp bitlen)) -> Ptr Word8 -> Word32 -> IO () Source # hashInternalFinalize :: Ptr ( Context ( Blake2sp bitlen)) -> Ptr ( Digest ( Blake2sp bitlen)) -> IO () Source # |
|
type HashBlockSize ( Blake2sp bitlen) Source # | |
Defined in Crypto.Hash.Blake2 |
|
type HashDigestSize ( Blake2sp bitlen) Source # | |
Defined in Crypto.Hash.Blake2 |
|
type HashInternalContextSize ( Blake2sp bitlen) Source # | |
Defined in Crypto.Hash.Blake2 |
data Skein256_224 Source #
Skein256 (224 bits) cryptographic hash algorithm
Constructors
Skein256_224 |
Instances
data Skein256_256 Source #
Skein256 (256 bits) cryptographic hash algorithm
Constructors
Skein256_256 |
Instances
data Skein512_224 Source #
Skein512 (224 bits) cryptographic hash algorithm
Constructors
Skein512_224 |
Instances
data Skein512_256 Source #
Skein512 (256 bits) cryptographic hash algorithm
Constructors
Skein512_256 |
Instances
data Skein512_384 Source #
Skein512 (384 bits) cryptographic hash algorithm
Constructors
Skein512_384 |
Instances
data Skein512_512 Source #
Skein512 (512 bits) cryptographic hash algorithm
Constructors
Skein512_512 |
Instances
Whirlpool cryptographic hash algorithm
Constructors
Whirlpool |