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

Copyright | (c) 2011 Felipe A. Lessa
License | BSD3 (see LICENSE)
Maintainer | felipe.lessa@gmail.com
Stability | provisional
Portability | portable (needs FFI)
Safe Haskell | None
Language | Haskell98

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

Instances details

Storable Skein256Ctx Source # |

Instance details

Defined in Crypto.Skein.Internal

Methods

sizeOf :: Skein256Ctx -> Int Source #

alignment :: Skein256Ctx -> Int Source #

peekElemOff :: Ptr Skein256Ctx -> Int -> IO Skein256Ctx Source #

pokeElemOff :: Ptr Skein256Ctx -> Int -> Skein256Ctx -> IO () Source #

peekByteOff :: Ptr b -> Int -> IO Skein256Ctx Source #

pokeByteOff :: Ptr b -> Int -> Skein256Ctx -> IO () Source #

peek :: Ptr Skein256Ctx -> IO Skein256Ctx Source #

poke :: Ptr Skein256Ctx -> Skein256Ctx -> IO () Source #

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

Instances details

Storable Skein512Ctx Source # |

Instance details

Defined in Crypto.Skein.Internal

Methods

sizeOf :: Skein512Ctx -> Int Source #

alignment :: Skein512Ctx -> Int Source #

peekElemOff :: Ptr Skein512Ctx -> Int -> IO Skein512Ctx Source #

pokeElemOff :: Ptr Skein512Ctx -> Int -> Skein512Ctx -> IO () Source #

peekByteOff :: Ptr b -> Int -> IO Skein512Ctx Source #

pokeByteOff :: Ptr b -> Int -> Skein512Ctx -> IO () Source #

peek :: Ptr Skein512Ctx -> IO Skein512Ctx Source #

poke :: Ptr Skein512Ctx -> Skein512Ctx -> IO () Source #

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

Instances details

Storable Skein1024Ctx Source # |

Instance details

Defined in Crypto.Skein.Internal

Methods

sizeOf :: Skein1024Ctx -> Int Source #

alignment :: Skein1024Ctx -> Int Source #

peekElemOff :: Ptr Skein1024Ctx -> Int -> IO Skein1024Ctx Source #

pokeElemOff :: Ptr Skein1024Ctx -> Int -> Skein1024Ctx -> IO () Source #

peekByteOff :: Ptr b -> Int -> IO Skein1024Ctx Source #

pokeByteOff :: Ptr b -> Int -> Skein1024Ctx -> IO () Source #

peek :: Ptr Skein1024Ctx -> IO Skein1024Ctx Source #

poke :: Ptr Skein1024Ctx -> Skein1024Ctx -> IO () Source #

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.