skein-1.0.8: Skein, a family of cryptographic hash functions. Includes Skein-MAC as well.

Portability | portable (needs FFI)
Stability | provisional
Maintainer | felipe.lessa@gmail.com
Safe Haskell | None

Crypto.Skein.Internal

Contents

- Return codes
- Skein-256
- Skein-512
- Skein-1024
- Misc constants

Description

Basic wrappers around the C library. You shouldn't need to use these functions. Instead, use the high-level Crypto.Skein module.

Synopsis

- sKEIN_SUCCESS :: CInt
- sKEIN_FAIL :: CInt
- sKEIN_BAD_HASHLEN :: CInt
- check :: IO CInt -> IO ()
- newtype Skein256Ctx = S256Ctx {
  - unS256Ctx :: ByteString
  }
- skein256Init :: Ptr Skein256Ctx -> CSize -> IO CInt
- skein256Update :: Ptr Skein256Ctx -> Ptr Word8 -> CSize -> IO CInt
- skein256Final :: Ptr Skein256Ctx -> Ptr Word8 -> IO CInt
- skein256InitExt :: Ptr Skein256Ctx -> CSize -> Word64 -> Ptr Word8 -> CSize -> IO CInt
- skein256FinalPad :: Ptr Skein256Ctx -> Ptr Word8 -> IO CInt
- skein256Output :: Ptr Skein256Ctx -> Ptr Word8 -> IO CInt
- newtype Skein512Ctx = S512Ctx {
  - unS512Ctx :: ByteString
  }
- skein512Init :: Ptr Skein512Ctx -> CSize -> IO CInt
- skein512Update :: Ptr Skein512Ctx -> Ptr Word8 -> CSize -> IO CInt
- skein512Final :: Ptr Skein512Ctx -> Ptr Word8 -> IO CInt
- skein512InitExt :: Ptr Skein512Ctx -> CSize -> Word64 -> Ptr Word8 -> CSize -> IO CInt
- skein512FinalPad :: Ptr Skein512Ctx -> Ptr Word8 -> IO CInt
- skein512Output :: Ptr Skein512Ctx -> Ptr Word8 -> IO CInt
- newtype Skein1024Ctx = S1024Ctx {
  - unS1024Ctx :: ByteString
  }
- skein1024Init :: Ptr Skein1024Ctx -> CSize -> IO CInt
- skein1024Update :: Ptr Skein1024Ctx -> Ptr Word8 -> CSize -> IO CInt
- skein1024Final :: Ptr Skein1024Ctx -> Ptr Word8 -> IO CInt
- skein1024InitExt :: Ptr Skein1024Ctx -> CSize -> Word64 -> Ptr Word8 -> CSize -> IO CInt
- skein1024FinalPad :: Ptr Skein1024Ctx -> Ptr Word8 -> IO CInt
- skein1024Output :: Ptr Skein1024Ctx -> Ptr Word8 -> IO CInt
- sKEIN_SEQUENTIAL :: Word64

# Return codes

sKEIN_SUCCESS :: CInt Source

sKEIN_FAIL :: CInt Source

sKEIN_BAD_HASHLEN :: CInt Source

check :: IO CInt -> IO ()Source

Throws exception if the function does not return successfully.

# Skein-256

newtype Skein256Ctx Source

Constructors

S256Ctx |

Fields

unS256Ctx :: ByteString

Instances

Storable Skein256Ctx |

skein256Init :: Ptr Skein256Ctx -> CSize -> IO CInt Source

skein256Update :: Ptr Skein256Ctx -> Ptr Word8 -> CSize -> IO CInt Source

skein256Final :: Ptr Skein256Ctx -> Ptr Word8 -> IO CInt Source

skein256InitExt :: Ptr Skein256Ctx -> CSize -> Word64 -> Ptr Word8 -> CSize -> IO CInt Source

skein256FinalPad :: Ptr Skein256Ctx -> Ptr Word8 -> IO CInt Source

skein256Output :: Ptr Skein256Ctx -> Ptr Word8 -> IO CInt Source

# Skein-512

newtype Skein512Ctx Source

Constructors

S512Ctx |

Fields

unS512Ctx :: ByteString

Instances

Storable Skein512Ctx |

skein512Init :: Ptr Skein512Ctx -> CSize -> IO CInt Source

skein512Update :: Ptr Skein512Ctx -> Ptr Word8 -> CSize -> IO CInt Source

skein512Final :: Ptr Skein512Ctx -> Ptr Word8 -> IO CInt Source

skein512InitExt :: Ptr Skein512Ctx -> CSize -> Word64 -> Ptr Word8 -> CSize -> IO CInt Source

skein512FinalPad :: Ptr Skein512Ctx -> Ptr Word8 -> IO CInt Source

skein512Output :: Ptr Skein512Ctx -> Ptr Word8 -> IO CInt Source

# Skein-1024

newtype Skein1024Ctx Source

Constructors

S1024Ctx |

Fields

unS1024Ctx :: ByteString

Instances

Storable Skein1024Ctx |

skein1024Init :: Ptr Skein1024Ctx -> CSize -> IO CInt Source

skein1024Update :: Ptr Skein1024Ctx -> Ptr Word8 -> CSize -> IO CInt Source

skein1024Final :: Ptr Skein1024Ctx -> Ptr Word8 -> IO CInt Source

skein1024InitExt :: Ptr Skein1024Ctx -> CSize -> Word64 -> Ptr Word8 -> CSize -> IO CInt Source

skein1024FinalPad :: Ptr Skein1024Ctx -> Ptr Word8 -> IO CInt Source

skein1024Output :: Ptr Skein1024Ctx -> Ptr Word8 -> IO CInt Source

# Misc constants

sKEIN_SEQUENTIAL :: Word64 Source

Pass to `InitExt` to get sequential processing.