Crypto.Skein.Internal

skein-1.0.9.2: 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

sKEIN_FAIL :: CInt

sKEIN_BAD_HASHLEN :: CInt

check :: IO CInt -> IO ()

Throws exception if the function does not return successfully.

# Skein-256

newtype Skein256Ctx

Constructors

S256Ctx |
Fields unS256Ctx :: ByteString

Instances

Storable Skein256Ctx |

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

# Skein-512

newtype Skein512Ctx

Constructors

S512Ctx |
Fields unS512Ctx :: ByteString

Instances

Storable Skein512Ctx |

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

# Skein-1024

newtype Skein1024Ctx

Constructors

S1024Ctx |
Fields unS1024Ctx :: ByteString

Instances

Storable Skein1024Ctx |

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

# Misc constants

sKEIN_SEQUENTIAL :: Word64

Pass to `InitExt` to get sequential processing.