haskoin-core-0.21.2: Bitcoin & Bitcoin Cash library for Haskell
CopyrightNo rights reserved
LicenseMIT
Maintainerjprupp@protonmail.ch
Stabilityexperimental
PortabilityPOSIX
Safe HaskellNone
LanguageHaskell2010

Haskoin.Crypto.Hash

Contents

Description

Hashing functions and corresponding data types. Uses functions from the cryptonite library.

Synopsis

Hashes

data Hash512 Source #

Type for 512-bit hashes.

Instances

Instances details
Eq Hash512 Source # 
Instance details

Defined in Haskoin.Crypto.Hash

Methods

(==) :: Hash512 -> Hash512 -> Bool #

(/=) :: Hash512 -> Hash512 -> Bool #

Ord Hash512 Source # 
Instance details

Defined in Haskoin.Crypto.Hash

Read Hash512 Source # 
Instance details

Defined in Haskoin.Crypto.Hash

Show Hash512 Source # 
Instance details

Defined in Haskoin.Crypto.Hash

IsString Hash512 Source # 
Instance details

Defined in Haskoin.Crypto.Hash

Methods

fromString :: String -> Hash512 #

Generic Hash512 Source # 
Instance details

Defined in Haskoin.Crypto.Hash

Associated Types

type Rep Hash512 :: Type -> Type #

Methods

from :: Hash512 -> Rep Hash512 x #

to :: Rep Hash512 x -> Hash512 #

Hashable Hash512 Source # 
Instance details

Defined in Haskoin.Crypto.Hash

Methods

hashWithSalt :: Int -> Hash512 -> Int #

hash :: Hash512 -> Int #

Binary Hash512 Source # 
Instance details

Defined in Haskoin.Crypto.Hash

Methods

put :: Hash512 -> Put #

get :: Get Hash512 #

putList :: [Hash512] -> Put #

Serial Hash512 Source # 
Instance details

Defined in Haskoin.Crypto.Hash

Methods

serialize :: MonadPut m => Hash512 -> m () #

deserialize :: MonadGet m => m Hash512 #

Serialize Hash512 Source # 
Instance details

Defined in Haskoin.Crypto.Hash

NFData Hash512 Source # 
Instance details

Defined in Haskoin.Crypto.Hash

Methods

rnf :: Hash512 -> () #

type Rep Hash512 Source # 
Instance details

Defined in Haskoin.Crypto.Hash

type Rep Hash512 = D1 ('MetaData "Hash512" "Haskoin.Crypto.Hash" "haskoin-core-0.21.2-inplace" 'True) (C1 ('MetaCons "Hash512" 'PrefixI 'True) (S1 ('MetaSel ('Just "getHash512") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ShortByteString)))

data Hash256 Source #

Type for 256-bit hashes.

Instances

Instances details
Eq Hash256 Source # 
Instance details

Defined in Haskoin.Crypto.Hash

Methods

(==) :: Hash256 -> Hash256 -> Bool #

(/=) :: Hash256 -> Hash256 -> Bool #

Ord Hash256 Source # 
Instance details

Defined in Haskoin.Crypto.Hash

Read Hash256 Source # 
Instance details

Defined in Haskoin.Crypto.Hash

Show Hash256 Source # 
Instance details

Defined in Haskoin.Crypto.Hash

IsString Hash256 Source # 
Instance details

Defined in Haskoin.Crypto.Hash

Methods

fromString :: String -> Hash256 #

Generic Hash256 Source # 
Instance details

Defined in Haskoin.Crypto.Hash

Associated Types

type Rep Hash256 :: Type -> Type #

Methods

from :: Hash256 -> Rep Hash256 x #

to :: Rep Hash256 x -> Hash256 #

Hashable Hash256 Source # 
Instance details

Defined in Haskoin.Crypto.Hash

Methods

hashWithSalt :: Int -> Hash256 -> Int #

hash :: Hash256 -> Int #

Binary Hash256 Source # 
Instance details

Defined in Haskoin.Crypto.Hash

Methods

put :: Hash256 -> Put #

get :: Get Hash256 #

putList :: [Hash256] -> Put #

Serial Hash256 Source # 
Instance details

Defined in Haskoin.Crypto.Hash

Methods

serialize :: MonadPut m => Hash256 -> m () #

deserialize :: MonadGet m => m Hash256 #

Serialize Hash256 Source # 
Instance details

Defined in Haskoin.Crypto.Hash

NFData Hash256 Source # 
Instance details

Defined in Haskoin.Crypto.Hash

Methods

rnf :: Hash256 -> () #

type Rep Hash256 Source # 
Instance details

Defined in Haskoin.Crypto.Hash

type Rep Hash256 = D1 ('MetaData "Hash256" "Haskoin.Crypto.Hash" "haskoin-core-0.21.2-inplace" 'True) (C1 ('MetaCons "Hash256" 'PrefixI 'True) (S1 ('MetaSel ('Just "getHash256") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ShortByteString)))

data Hash160 Source #

Type for 160-bit hashes.

Instances

Instances details
Eq Hash160 Source # 
Instance details

Defined in Haskoin.Crypto.Hash

Methods

(==) :: Hash160 -> Hash160 -> Bool #

(/=) :: Hash160 -> Hash160 -> Bool #

Ord Hash160 Source # 
Instance details

Defined in Haskoin.Crypto.Hash

Read Hash160 Source # 
Instance details

Defined in Haskoin.Crypto.Hash

Show Hash160 Source # 
Instance details

Defined in Haskoin.Crypto.Hash

IsString Hash160 Source # 
Instance details

Defined in Haskoin.Crypto.Hash

Methods

fromString :: String -> Hash160 #

Generic Hash160 Source # 
Instance details

Defined in Haskoin.Crypto.Hash

Associated Types

type Rep Hash160 :: Type -> Type #

Methods

from :: Hash160 -> Rep Hash160 x #

to :: Rep Hash160 x -> Hash160 #

Hashable Hash160 Source # 
Instance details

Defined in Haskoin.Crypto.Hash

Methods

hashWithSalt :: Int -> Hash160 -> Int #

hash :: Hash160 -> Int #

Binary Hash160 Source # 
Instance details

Defined in Haskoin.Crypto.Hash

Methods

put :: Hash160 -> Put #

get :: Get Hash160 #

putList :: [Hash160] -> Put #

Serial Hash160 Source # 
Instance details

Defined in Haskoin.Crypto.Hash

Methods

serialize :: MonadPut m => Hash160 -> m () #

deserialize :: MonadGet m => m Hash160 #

Serialize Hash160 Source # 
Instance details

Defined in Haskoin.Crypto.Hash

NFData Hash160 Source # 
Instance details

Defined in Haskoin.Crypto.Hash

Methods

rnf :: Hash160 -> () #

type Rep Hash160 Source # 
Instance details

Defined in Haskoin.Crypto.Hash

type Rep Hash160 = D1 ('MetaData "Hash160" "Haskoin.Crypto.Hash" "haskoin-core-0.21.2-inplace" 'True) (C1 ('MetaCons "Hash160" 'PrefixI 'True) (S1 ('MetaSel ('Just "getHash160") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ShortByteString)))

data CheckSum32 Source #

Word32 wrapped for type-safe 32-bit checksums.

Instances

Instances details
Eq CheckSum32 Source # 
Instance details

Defined in Haskoin.Crypto.Hash

Ord CheckSum32 Source # 
Instance details

Defined in Haskoin.Crypto.Hash

Read CheckSum32 Source # 
Instance details

Defined in Haskoin.Crypto.Hash

Show CheckSum32 Source # 
Instance details

Defined in Haskoin.Crypto.Hash

Generic CheckSum32 Source # 
Instance details

Defined in Haskoin.Crypto.Hash

Associated Types

type Rep CheckSum32 :: Type -> Type #

Hashable CheckSum32 Source # 
Instance details

Defined in Haskoin.Crypto.Hash

Binary CheckSum32 Source # 
Instance details

Defined in Haskoin.Crypto.Hash

Serial CheckSum32 Source # 
Instance details

Defined in Haskoin.Crypto.Hash

Methods

serialize :: MonadPut m => CheckSum32 -> m () #

deserialize :: MonadGet m => m CheckSum32 #

Serialize CheckSum32 Source # 
Instance details

Defined in Haskoin.Crypto.Hash

NFData CheckSum32 Source # 
Instance details

Defined in Haskoin.Crypto.Hash

Methods

rnf :: CheckSum32 -> () #

type Rep CheckSum32 Source # 
Instance details

Defined in Haskoin.Crypto.Hash

type Rep CheckSum32 = D1 ('MetaData "CheckSum32" "Haskoin.Crypto.Hash" "haskoin-core-0.21.2-inplace" 'True) (C1 ('MetaCons "CheckSum32" 'PrefixI 'True) (S1 ('MetaSel ('Just "getCheckSum32") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word32)))

sha512 :: ByteArrayAccess b => b -> Hash512 Source #

Calculate SHA512 hash.

sha256 :: ByteArrayAccess b => b -> Hash256 Source #

Calculate SHA256 hash.

ripemd160 :: ByteArrayAccess b => b -> Hash160 Source #

Calculate RIPEMD160 hash.

sha1 :: ByteArrayAccess b => b -> Hash160 Source #

Claculate SHA1 hash.

doubleSHA256 :: ByteArrayAccess b => b -> Hash256 Source #

Compute two rounds of SHA-256.

addressHash :: ByteArrayAccess b => b -> Hash160 Source #

Compute SHA-256 followed by RIPMED-160.

checkSum32 :: ByteArrayAccess b => b -> CheckSum32 Source #

Computes a 32 bit checksum.

hmac512 :: ByteString -> ByteString -> Hash512 Source #

Computes HMAC over SHA-512.

hmac256 :: (ByteArrayAccess k, ByteArrayAccess m) => k -> m -> Hash256 Source #

Computes HMAC over SHA-256.

split512 :: Hash512 -> (Hash256, Hash256) Source #

Split a Hash512 into a pair of Hash256.

join512 :: (Hash256, Hash256) -> Hash512 Source #

Join a pair of Hash256 into a Hash512.

initTaggedHash Source #

Arguments

:: ByteString

Hash tag

-> Context SHA256 

Initialize tagged hash specified in BIP340

Since: 0.21.0