License | BSD-style |
---|---|
Maintainer | Vincent Hanquez <vincent@snarc.org> |
Stability | experimental |
Portability | unknown |
Safe Haskell | None |
Language | Haskell2010 |
Definitions of known hash algorithms
- 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 = SHAKE128
- data SHAKE256 bitlen = SHAKE256
- data Blake2b bitlen = Blake2b
- data Blake2bp bitlen = Blake2bp
- data Blake2s bitlen = Blake2s
- data Blake2sp bitlen = 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 #
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.
hashBlockSize, hashDigestSize, hashInternalContextSize, hashInternalInit, hashInternalUpdate, hashInternalFinalize
hash algorithms
data Blake2s_160 #
Blake2s (160 bits) cryptographic hash algorithm
data Blake2s_224 #
Blake2s (224 bits) cryptographic hash algorithm
data Blake2s_256 #
Blake2s (256 bits) cryptographic hash algorithm
data Blake2sp_224 #
Blake2sp (224 bits) cryptographic hash algorithm
data Blake2sp_256 #
Blake2sp (256 bits) cryptographic hash algorithm
data Blake2b_160 #
Blake2b (160 bits) cryptographic hash algorithm
data Blake2b_224 #
Blake2b (224 bits) cryptographic hash algorithm
data Blake2b_256 #
Blake2b (256 bits) cryptographic hash algorithm
data Blake2b_384 #
Blake2b (384 bits) cryptographic hash algorithm
data Blake2b_512 #
Blake2b (512 bits) cryptographic hash algorithm
data Blake2bp_512 #
Blake2bp (512 bits) cryptographic hash algorithm
MD2 cryptographic hash algorithm
Data MD2 # | |
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> MD2 -> c MD2 # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c MD2 # dataTypeOf :: MD2 -> DataType # dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c MD2) # dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c MD2) # gmapT :: (forall b. Data b => b -> b) -> MD2 -> MD2 # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> MD2 -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> MD2 -> r # gmapQ :: (forall d. Data d => d -> u) -> MD2 -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> MD2 -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> MD2 -> m MD2 # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> MD2 -> m MD2 # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> MD2 -> m MD2 # | |
Show MD2 # | |
HashAlgorithm MD2 # | |
HashAlgorithmASN1 MD2 # | |
hashDigestASN1 :: ByteArray out => Digest MD2 -> out |
MD4 cryptographic hash algorithm
Data MD4 # | |
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> MD4 -> c MD4 # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c MD4 # dataTypeOf :: MD4 -> DataType # dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c MD4) # dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c MD4) # gmapT :: (forall b. Data b => b -> b) -> MD4 -> MD4 # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> MD4 -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> MD4 -> r # gmapQ :: (forall d. Data d => d -> u) -> MD4 -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> MD4 -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> MD4 -> m MD4 # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> MD4 -> m MD4 # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> MD4 -> m MD4 # | |
Show MD4 # | |
HashAlgorithm MD4 # | |
MD5 cryptographic hash algorithm
Data MD5 # | |
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> MD5 -> c MD5 # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c MD5 # dataTypeOf :: MD5 -> DataType # dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c MD5) # dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c MD5) # gmapT :: (forall b. Data b => b -> b) -> MD5 -> MD5 # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> MD5 -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> MD5 -> r # gmapQ :: (forall d. Data d => d -> u) -> MD5 -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> MD5 -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> MD5 -> m MD5 # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> MD5 -> m MD5 # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> MD5 -> m MD5 # | |
Show MD5 # | |
HashAlgorithm MD5 # | |
HashAlgorithmASN1 MD5 # | |
hashDigestASN1 :: ByteArray out => Digest MD5 -> out |
SHA1 cryptographic hash algorithm
Data SHA1 # | |
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SHA1 -> c SHA1 # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c SHA1 # dataTypeOf :: SHA1 -> DataType # dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c SHA1) # dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c SHA1) # gmapT :: (forall b. Data b => b -> b) -> SHA1 -> SHA1 # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SHA1 -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SHA1 -> r # gmapQ :: (forall d. Data d => d -> u) -> SHA1 -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> SHA1 -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> SHA1 -> m SHA1 # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SHA1 -> m SHA1 # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SHA1 -> m SHA1 # | |
Show SHA1 # | |
HashAlgorithm SHA1 # | |
HashAlgorithmASN1 SHA1 # | |
hashDigestASN1 :: ByteArray out => Digest SHA1 -> out |
SHA224 cryptographic hash algorithm
Data SHA224 # | |
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SHA224 -> c SHA224 # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c SHA224 # toConstr :: SHA224 -> Constr # dataTypeOf :: SHA224 -> DataType # dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c SHA224) # dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c SHA224) # gmapT :: (forall b. Data b => b -> b) -> SHA224 -> SHA224 # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SHA224 -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SHA224 -> r # gmapQ :: (forall d. Data d => d -> u) -> SHA224 -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> SHA224 -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> SHA224 -> m SHA224 # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SHA224 -> m SHA224 # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SHA224 -> m SHA224 # | |
Show SHA224 # | |
HashAlgorithm SHA224 # | |
hashBlockSize :: SHA224 -> Int # hashDigestSize :: SHA224 -> Int # hashInternalContextSize :: SHA224 -> Int # hashInternalInit :: Ptr (Context SHA224) -> IO () # hashInternalUpdate :: Ptr (Context SHA224) -> Ptr Word8 -> Word32 -> IO () # hashInternalFinalize :: Ptr (Context SHA224) -> Ptr (Digest SHA224) -> IO () # | |
HashAlgorithmASN1 SHA224 # | |
hashDigestASN1 :: ByteArray out => Digest SHA224 -> out |
SHA256 cryptographic hash algorithm
Data SHA256 # | |
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SHA256 -> c SHA256 # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c SHA256 # toConstr :: SHA256 -> Constr # dataTypeOf :: SHA256 -> DataType # dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c SHA256) # dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c SHA256) # gmapT :: (forall b. Data b => b -> b) -> SHA256 -> SHA256 # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SHA256 -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SHA256 -> r # gmapQ :: (forall d. Data d => d -> u) -> SHA256 -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> SHA256 -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> SHA256 -> m SHA256 # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SHA256 -> m SHA256 # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SHA256 -> m SHA256 # | |
Show SHA256 # | |
HashAlgorithm SHA256 # | |
hashBlockSize :: SHA256 -> Int # hashDigestSize :: SHA256 -> Int # hashInternalContextSize :: SHA256 -> Int # hashInternalInit :: Ptr (Context SHA256) -> IO () # hashInternalUpdate :: Ptr (Context SHA256) -> Ptr Word8 -> Word32 -> IO () # hashInternalFinalize :: Ptr (Context SHA256) -> Ptr (Digest SHA256) -> IO () # | |
HashAlgorithmASN1 SHA256 # | |
hashDigestASN1 :: ByteArray out => Digest SHA256 -> out |
SHA384 cryptographic hash algorithm
Data SHA384 # | |
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SHA384 -> c SHA384 # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c SHA384 # toConstr :: SHA384 -> Constr # dataTypeOf :: SHA384 -> DataType # dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c SHA384) # dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c SHA384) # gmapT :: (forall b. Data b => b -> b) -> SHA384 -> SHA384 # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SHA384 -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SHA384 -> r # gmapQ :: (forall d. Data d => d -> u) -> SHA384 -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> SHA384 -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> SHA384 -> m SHA384 # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SHA384 -> m SHA384 # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SHA384 -> m SHA384 # | |
Show SHA384 # | |
HashAlgorithm SHA384 # | |
hashBlockSize :: SHA384 -> Int # hashDigestSize :: SHA384 -> Int # hashInternalContextSize :: SHA384 -> Int # hashInternalInit :: Ptr (Context SHA384) -> IO () # hashInternalUpdate :: Ptr (Context SHA384) -> Ptr Word8 -> Word32 -> IO () # hashInternalFinalize :: Ptr (Context SHA384) -> Ptr (Digest SHA384) -> IO () # | |
HashAlgorithmASN1 SHA384 # | |
hashDigestASN1 :: ByteArray out => Digest SHA384 -> out |
SHA512 cryptographic hash algorithm
Data SHA512 # | |
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SHA512 -> c SHA512 # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c SHA512 # toConstr :: SHA512 -> Constr # dataTypeOf :: SHA512 -> DataType # dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c SHA512) # dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c SHA512) # gmapT :: (forall b. Data b => b -> b) -> SHA512 -> SHA512 # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SHA512 -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SHA512 -> r # gmapQ :: (forall d. Data d => d -> u) -> SHA512 -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> SHA512 -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> SHA512 -> m SHA512 # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SHA512 -> m SHA512 # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SHA512 -> m SHA512 # | |
Show SHA512 # | |
HashAlgorithm SHA512 # | |
hashBlockSize :: SHA512 -> Int # hashDigestSize :: SHA512 -> Int # hashInternalContextSize :: SHA512 -> Int # hashInternalInit :: Ptr (Context SHA512) -> IO () # hashInternalUpdate :: Ptr (Context SHA512) -> Ptr Word8 -> Word32 -> IO () # hashInternalFinalize :: Ptr (Context SHA512) -> Ptr (Digest SHA512) -> IO () # | |
HashAlgorithmASN1 SHA512 # | |
hashDigestASN1 :: ByteArray out => Digest SHA512 -> out |
data SHA512t_224 #
SHA512t (224 bits) cryptographic hash algorithm
data SHA512t_256 #
SHA512t (256 bits) cryptographic hash algorithm
RIPEMD160 cryptographic hash algorithm
Data RIPEMD160 # | |
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> RIPEMD160 -> c RIPEMD160 # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c RIPEMD160 # toConstr :: RIPEMD160 -> Constr # dataTypeOf :: RIPEMD160 -> DataType # dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c RIPEMD160) # dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c RIPEMD160) # gmapT :: (forall b. Data b => b -> b) -> RIPEMD160 -> RIPEMD160 # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> RIPEMD160 -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> RIPEMD160 -> r # gmapQ :: (forall d. Data d => d -> u) -> RIPEMD160 -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> RIPEMD160 -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> RIPEMD160 -> m RIPEMD160 # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> RIPEMD160 -> m RIPEMD160 # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> RIPEMD160 -> m RIPEMD160 # | |
Show RIPEMD160 # | |
HashAlgorithm RIPEMD160 # | |
hashBlockSize :: RIPEMD160 -> Int # hashDigestSize :: RIPEMD160 -> Int # hashInternalContextSize :: RIPEMD160 -> Int # hashInternalInit :: Ptr (Context RIPEMD160) -> IO () # hashInternalUpdate :: Ptr (Context RIPEMD160) -> Ptr Word8 -> Word32 -> IO () # hashInternalFinalize :: Ptr (Context RIPEMD160) -> Ptr (Digest RIPEMD160) -> IO () # | |
HashAlgorithmASN1 RIPEMD160 # | |
hashDigestASN1 :: ByteArray out => Digest RIPEMD160 -> out |
Tiger cryptographic hash algorithm
Data Tiger # | |
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Tiger -> c Tiger # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Tiger # dataTypeOf :: Tiger -> DataType # dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c Tiger) # dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Tiger) # gmapT :: (forall b. Data b => b -> b) -> Tiger -> Tiger # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Tiger -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Tiger -> r # gmapQ :: (forall d. Data d => d -> u) -> Tiger -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Tiger -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Tiger -> m Tiger # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Tiger -> m Tiger # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Tiger -> m Tiger # | |
Show Tiger # | |
HashAlgorithm Tiger # | |
hashBlockSize :: Tiger -> Int # hashDigestSize :: Tiger -> Int # hashInternalContextSize :: Tiger -> Int # hashInternalInit :: Ptr (Context Tiger) -> IO () # hashInternalUpdate :: Ptr (Context Tiger) -> Ptr Word8 -> Word32 -> IO () # hashInternalFinalize :: Ptr (Context Tiger) -> Ptr (Digest Tiger) -> IO () # |
data Keccak_224 #
Keccak (224 bits) cryptographic hash algorithm
Data Keccak_224 # | |
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Keccak_224 -> c Keccak_224 # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Keccak_224 # toConstr :: Keccak_224 -> Constr # dataTypeOf :: Keccak_224 -> DataType # dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c Keccak_224) # dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Keccak_224) # gmapT :: (forall b. Data b => b -> b) -> Keccak_224 -> Keccak_224 # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Keccak_224 -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Keccak_224 -> r # gmapQ :: (forall d. Data d => d -> u) -> Keccak_224 -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Keccak_224 -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Keccak_224 -> m Keccak_224 # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Keccak_224 -> m Keccak_224 # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Keccak_224 -> m Keccak_224 # | |
Show Keccak_224 # | |
showsPrec :: Int -> Keccak_224 -> ShowS # show :: Keccak_224 -> String # showList :: [Keccak_224] -> ShowS # | |
HashAlgorithm Keccak_224 # | |
hashBlockSize :: Keccak_224 -> Int # hashDigestSize :: Keccak_224 -> Int # hashInternalContextSize :: Keccak_224 -> Int # hashInternalInit :: Ptr (Context Keccak_224) -> IO () # hashInternalUpdate :: Ptr (Context Keccak_224) -> Ptr Word8 -> Word32 -> IO () # hashInternalFinalize :: Ptr (Context Keccak_224) -> Ptr (Digest Keccak_224) -> IO () # |
data Keccak_256 #
Keccak (256 bits) cryptographic hash algorithm
Data Keccak_256 # | |
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Keccak_256 -> c Keccak_256 # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Keccak_256 # toConstr :: Keccak_256 -> Constr # dataTypeOf :: Keccak_256 -> DataType # dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c Keccak_256) # dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Keccak_256) # gmapT :: (forall b. Data b => b -> b) -> Keccak_256 -> Keccak_256 # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Keccak_256 -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Keccak_256 -> r # gmapQ :: (forall d. Data d => d -> u) -> Keccak_256 -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Keccak_256 -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Keccak_256 -> m Keccak_256 # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Keccak_256 -> m Keccak_256 # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Keccak_256 -> m Keccak_256 # | |
Show Keccak_256 # | |
showsPrec :: Int -> Keccak_256 -> ShowS # show :: Keccak_256 -> String # showList :: [Keccak_256] -> ShowS # | |
HashAlgorithm Keccak_256 # | |
hashBlockSize :: Keccak_256 -> Int # hashDigestSize :: Keccak_256 -> Int # hashInternalContextSize :: Keccak_256 -> Int # hashInternalInit :: Ptr (Context Keccak_256) -> IO () # hashInternalUpdate :: Ptr (Context Keccak_256) -> Ptr Word8 -> Word32 -> IO () # hashInternalFinalize :: Ptr (Context Keccak_256) -> Ptr (Digest Keccak_256) -> IO () # |
data Keccak_384 #
Keccak (384 bits) cryptographic hash algorithm
Data Keccak_384 # | |
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Keccak_384 -> c Keccak_384 # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Keccak_384 # toConstr :: Keccak_384 -> Constr # dataTypeOf :: Keccak_384 -> DataType # dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c Keccak_384) # dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Keccak_384) # gmapT :: (forall b. Data b => b -> b) -> Keccak_384 -> Keccak_384 # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Keccak_384 -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Keccak_384 -> r # gmapQ :: (forall d. Data d => d -> u) -> Keccak_384 -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Keccak_384 -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Keccak_384 -> m Keccak_384 # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Keccak_384 -> m Keccak_384 # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Keccak_384 -> m Keccak_384 # | |
Show Keccak_384 # | |
showsPrec :: Int -> Keccak_384 -> ShowS # show :: Keccak_384 -> String # showList :: [Keccak_384] -> ShowS # | |
HashAlgorithm Keccak_384 # | |
hashBlockSize :: Keccak_384 -> Int # hashDigestSize :: Keccak_384 -> Int # hashInternalContextSize :: Keccak_384 -> Int # hashInternalInit :: Ptr (Context Keccak_384) -> IO () # hashInternalUpdate :: Ptr (Context Keccak_384) -> Ptr Word8 -> Word32 -> IO () # hashInternalFinalize :: Ptr (Context Keccak_384) -> Ptr (Digest Keccak_384) -> IO () # |
data Keccak_512 #
Keccak (512 bits) cryptographic hash algorithm
Data Keccak_512 # | |
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Keccak_512 -> c Keccak_512 # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Keccak_512 # toConstr :: Keccak_512 -> Constr # dataTypeOf :: Keccak_512 -> DataType # dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c Keccak_512) # dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Keccak_512) # gmapT :: (forall b. Data b => b -> b) -> Keccak_512 -> Keccak_512 # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Keccak_512 -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Keccak_512 -> r # gmapQ :: (forall d. Data d => d -> u) -> Keccak_512 -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Keccak_512 -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Keccak_512 -> m Keccak_512 # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Keccak_512 -> m Keccak_512 # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Keccak_512 -> m Keccak_512 # | |
Show Keccak_512 # | |
showsPrec :: Int -> Keccak_512 -> ShowS # show :: Keccak_512 -> String # showList :: [Keccak_512] -> ShowS # | |
HashAlgorithm Keccak_512 # | |
hashBlockSize :: Keccak_512 -> Int # hashDigestSize :: Keccak_512 -> Int # hashInternalContextSize :: Keccak_512 -> Int # hashInternalInit :: Ptr (Context Keccak_512) -> IO () # hashInternalUpdate :: Ptr (Context Keccak_512) -> Ptr Word8 -> Word32 -> IO () # hashInternalFinalize :: Ptr (Context Keccak_512) -> Ptr (Digest Keccak_512) -> IO () # |
SHA3 (224 bits) cryptographic hash algorithm
Data SHA3_224 # | |
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SHA3_224 -> c SHA3_224 # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c SHA3_224 # toConstr :: SHA3_224 -> Constr # dataTypeOf :: SHA3_224 -> DataType # dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c SHA3_224) # dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c SHA3_224) # gmapT :: (forall b. Data b => b -> b) -> SHA3_224 -> SHA3_224 # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SHA3_224 -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SHA3_224 -> r # gmapQ :: (forall d. Data d => d -> u) -> SHA3_224 -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> SHA3_224 -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> SHA3_224 -> m SHA3_224 # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SHA3_224 -> m SHA3_224 # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SHA3_224 -> m SHA3_224 # | |
Show SHA3_224 # | |
HashAlgorithm SHA3_224 # | |
hashBlockSize :: SHA3_224 -> Int # hashDigestSize :: SHA3_224 -> Int # hashInternalContextSize :: SHA3_224 -> Int # hashInternalInit :: Ptr (Context SHA3_224) -> IO () # hashInternalUpdate :: Ptr (Context SHA3_224) -> Ptr Word8 -> Word32 -> IO () # hashInternalFinalize :: Ptr (Context SHA3_224) -> Ptr (Digest SHA3_224) -> IO () # |
SHA3 (256 bits) cryptographic hash algorithm
Data SHA3_256 # | |
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SHA3_256 -> c SHA3_256 # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c SHA3_256 # toConstr :: SHA3_256 -> Constr # dataTypeOf :: SHA3_256 -> DataType # dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c SHA3_256) # dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c SHA3_256) # gmapT :: (forall b. Data b => b -> b) -> SHA3_256 -> SHA3_256 # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SHA3_256 -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SHA3_256 -> r # gmapQ :: (forall d. Data d => d -> u) -> SHA3_256 -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> SHA3_256 -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> SHA3_256 -> m SHA3_256 # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SHA3_256 -> m SHA3_256 # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SHA3_256 -> m SHA3_256 # | |
Show SHA3_256 # | |
HashAlgorithm SHA3_256 # | |
hashBlockSize :: SHA3_256 -> Int # hashDigestSize :: SHA3_256 -> Int # hashInternalContextSize :: SHA3_256 -> Int # hashInternalInit :: Ptr (Context SHA3_256) -> IO () # hashInternalUpdate :: Ptr (Context SHA3_256) -> Ptr Word8 -> Word32 -> IO () # hashInternalFinalize :: Ptr (Context SHA3_256) -> Ptr (Digest SHA3_256) -> IO () # |
SHA3 (384 bits) cryptographic hash algorithm
Data SHA3_384 # | |
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SHA3_384 -> c SHA3_384 # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c SHA3_384 # toConstr :: SHA3_384 -> Constr # dataTypeOf :: SHA3_384 -> DataType # dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c SHA3_384) # dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c SHA3_384) # gmapT :: (forall b. Data b => b -> b) -> SHA3_384 -> SHA3_384 # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SHA3_384 -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SHA3_384 -> r # gmapQ :: (forall d. Data d => d -> u) -> SHA3_384 -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> SHA3_384 -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> SHA3_384 -> m SHA3_384 # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SHA3_384 -> m SHA3_384 # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SHA3_384 -> m SHA3_384 # | |
Show SHA3_384 # | |
HashAlgorithm SHA3_384 # | |
hashBlockSize :: SHA3_384 -> Int # hashDigestSize :: SHA3_384 -> Int # hashInternalContextSize :: SHA3_384 -> Int # hashInternalInit :: Ptr (Context SHA3_384) -> IO () # hashInternalUpdate :: Ptr (Context SHA3_384) -> Ptr Word8 -> Word32 -> IO () # hashInternalFinalize :: Ptr (Context SHA3_384) -> Ptr (Digest SHA3_384) -> IO () # |
SHA3 (512 bits) cryptographic hash algorithm
Data SHA3_512 # | |
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SHA3_512 -> c SHA3_512 # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c SHA3_512 # toConstr :: SHA3_512 -> Constr # dataTypeOf :: SHA3_512 -> DataType # dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c SHA3_512) # dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c SHA3_512) # gmapT :: (forall b. Data b => b -> b) -> SHA3_512 -> SHA3_512 # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SHA3_512 -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SHA3_512 -> r # gmapQ :: (forall d. Data d => d -> u) -> SHA3_512 -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> SHA3_512 -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> SHA3_512 -> m SHA3_512 # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SHA3_512 -> m SHA3_512 # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SHA3_512 -> m SHA3_512 # | |
Show SHA3_512 # | |
HashAlgorithm SHA3_512 # | |
hashBlockSize :: SHA3_512 -> Int # hashDigestSize :: SHA3_512 -> Int # hashInternalContextSize :: SHA3_512 -> Int # hashInternalInit :: Ptr (Context SHA3_512) -> IO () # hashInternalUpdate :: Ptr (Context SHA3_512) -> Ptr Word8 -> Word32 -> IO () # hashInternalFinalize :: Ptr (Context SHA3_512) -> Ptr (Digest SHA3_512) -> IO () # |
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
and SHAKE128
n
for the same input are
correlated (one being a prefix of the other). Results are unrelated to
SHAKE128
mSHAKE256
results.
Show (SHAKE128 bitlen) # | |
(IsDivisibleBy8 bitLen, KnownNat bitLen) => HashAlgorithm (SHAKE128 bitLen) # | |
hashBlockSize :: SHAKE128 bitLen -> Int # hashDigestSize :: SHAKE128 bitLen -> Int # hashInternalContextSize :: SHAKE128 bitLen -> Int # hashInternalInit :: Ptr (Context (SHAKE128 bitLen)) -> IO () # hashInternalUpdate :: Ptr (Context (SHAKE128 bitLen)) -> Ptr Word8 -> Word32 -> IO () # hashInternalFinalize :: Ptr (Context (SHAKE128 bitLen)) -> Ptr (Digest (SHAKE128 bitLen)) -> IO () # |
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
and SHAKE256
n
for the same input are
correlated (one being a prefix of the other). Results are unrelated to
SHAKE256
mSHAKE128
results.
Show (SHAKE256 bitlen) # | |
(IsDivisibleBy8 bitLen, KnownNat bitLen) => HashAlgorithm (SHAKE256 bitLen) # | |
hashBlockSize :: SHAKE256 bitLen -> Int # hashDigestSize :: SHAKE256 bitLen -> Int # hashInternalContextSize :: SHAKE256 bitLen -> Int # hashInternalInit :: Ptr (Context (SHAKE256 bitLen)) -> IO () # hashInternalUpdate :: Ptr (Context (SHAKE256 bitLen)) -> Ptr Word8 -> Word32 -> IO () # hashInternalFinalize :: Ptr (Context (SHAKE256 bitLen)) -> Ptr (Digest (SHAKE256 bitLen)) -> IO () # |
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
Show (Blake2b bitlen) # | |
(IsDivisibleBy8 bitlen, KnownNat bitlen, IsAtLeast bitlen 8, IsAtMost bitlen 512) => HashAlgorithm (Blake2b bitlen) # | |
hashBlockSize :: Blake2b bitlen -> Int # hashDigestSize :: Blake2b bitlen -> Int # hashInternalContextSize :: Blake2b bitlen -> Int # hashInternalInit :: Ptr (Context (Blake2b bitlen)) -> IO () # hashInternalUpdate :: Ptr (Context (Blake2b bitlen)) -> Ptr Word8 -> Word32 -> IO () # hashInternalFinalize :: Ptr (Context (Blake2b bitlen)) -> Ptr (Digest (Blake2b bitlen)) -> IO () # |
Show (Blake2bp bitlen) # | |
(IsDivisibleBy8 bitlen, KnownNat bitlen, IsAtLeast bitlen 8, IsAtMost bitlen 512) => HashAlgorithm (Blake2bp bitlen) # | |
hashBlockSize :: Blake2bp bitlen -> Int # hashDigestSize :: Blake2bp bitlen -> Int # hashInternalContextSize :: Blake2bp bitlen -> Int # hashInternalInit :: Ptr (Context (Blake2bp bitlen)) -> IO () # hashInternalUpdate :: Ptr (Context (Blake2bp bitlen)) -> Ptr Word8 -> Word32 -> IO () # hashInternalFinalize :: Ptr (Context (Blake2bp bitlen)) -> Ptr (Digest (Blake2bp bitlen)) -> IO () # |
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
Show (Blake2s bitlen) # | |
(IsDivisibleBy8 bitlen, KnownNat bitlen, IsAtLeast bitlen 8, IsAtMost bitlen 256) => HashAlgorithm (Blake2s bitlen) # | |
hashBlockSize :: Blake2s bitlen -> Int # hashDigestSize :: Blake2s bitlen -> Int # hashInternalContextSize :: Blake2s bitlen -> Int # hashInternalInit :: Ptr (Context (Blake2s bitlen)) -> IO () # hashInternalUpdate :: Ptr (Context (Blake2s bitlen)) -> Ptr Word8 -> Word32 -> IO () # hashInternalFinalize :: Ptr (Context (Blake2s bitlen)) -> Ptr (Digest (Blake2s bitlen)) -> IO () # |
Show (Blake2sp bitlen) # | |
(IsDivisibleBy8 bitlen, KnownNat bitlen, IsAtLeast bitlen 8, IsAtMost bitlen 256) => HashAlgorithm (Blake2sp bitlen) # | |
hashBlockSize :: Blake2sp bitlen -> Int # hashDigestSize :: Blake2sp bitlen -> Int # hashInternalContextSize :: Blake2sp bitlen -> Int # hashInternalInit :: Ptr (Context (Blake2sp bitlen)) -> IO () # hashInternalUpdate :: Ptr (Context (Blake2sp bitlen)) -> Ptr Word8 -> Word32 -> IO () # hashInternalFinalize :: Ptr (Context (Blake2sp bitlen)) -> Ptr (Digest (Blake2sp bitlen)) -> IO () # |
data Skein256_224 #
Skein256 (224 bits) cryptographic hash algorithm
data Skein256_256 #
Skein256 (256 bits) cryptographic hash algorithm
data Skein512_224 #
Skein512 (224 bits) cryptographic hash algorithm
data Skein512_256 #
Skein512 (256 bits) cryptographic hash algorithm
data Skein512_384 #
Skein512 (384 bits) cryptographic hash algorithm
data Skein512_512 #
Skein512 (512 bits) cryptographic hash algorithm
Whirlpool cryptographic hash algorithm
Data Whirlpool # | |
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Whirlpool -> c Whirlpool # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Whirlpool # toConstr :: Whirlpool -> Constr # dataTypeOf :: Whirlpool -> DataType # dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c Whirlpool) # dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Whirlpool) # gmapT :: (forall b. Data b => b -> b) -> Whirlpool -> Whirlpool # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Whirlpool -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Whirlpool -> r # gmapQ :: (forall d. Data d => d -> u) -> Whirlpool -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Whirlpool -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Whirlpool -> m Whirlpool # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Whirlpool -> m Whirlpool # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Whirlpool -> m Whirlpool # | |
Show Whirlpool # | |
HashAlgorithm Whirlpool # | |
hashBlockSize :: Whirlpool -> Int # hashDigestSize :: Whirlpool -> Int # hashInternalContextSize :: Whirlpool -> Int # hashInternalInit :: Ptr (Context Whirlpool) -> IO () # hashInternalUpdate :: Ptr (Context Whirlpool) -> Ptr Word8 -> Word32 -> IO () # hashInternalFinalize :: Ptr (Context Whirlpool) -> Ptr (Digest Whirlpool) -> IO () # |