{-# LINE 1 "src/Crypto/Nettle/Hash/ForeignImports.hsc" #-}
{-# OPTIONS_HADDOCK hide #-}
{-# LANGUAGE ForeignFunctionInterface #-}

module Crypto.Nettle.Hash.ForeignImports
	( NettleHashInit
	, NettleHashUpdate
	, NettleHashDigest

	, c_sha256_ctx_size
	, c_sha256_digest_size
	, c_sha256_block_size
	, c_sha256_init
	, c_sha256_update
	, c_sha256_digest

	, c_sha224_ctx_size
	, c_sha224_digest_size
	, c_sha224_block_size
	, c_sha224_init
	, c_sha224_update
	, c_sha224_digest

	, c_sha512_ctx_size
	, c_sha512_digest_size
	, c_sha512_block_size
	, c_sha512_init
	, c_sha512_update
	, c_sha512_digest

	, c_sha384_ctx_size
	, c_sha384_digest_size
	, c_sha384_block_size
	, c_sha384_init
	, c_sha384_update
	, c_sha384_digest

	, c_sha3_224_ctx_size
	, c_sha3_224_digest_size
	, c_sha3_224_block_size
	, c_sha3_224_init
	, c_sha3_224_update
	, c_sha3_224_digest

	, c_sha3_256_ctx_size
	, c_sha3_256_digest_size
	, c_sha3_256_block_size
	, c_sha3_256_init
	, c_sha3_256_update
	, c_sha3_256_digest

	, c_sha3_384_ctx_size
	, c_sha3_384_digest_size
	, c_sha3_384_block_size
	, c_sha3_384_init
	, c_sha3_384_update
	, c_sha3_384_digest

	, c_sha3_512_ctx_size
	, c_sha3_512_digest_size
	, c_sha3_512_block_size
	, c_sha3_512_init
	, c_sha3_512_update
	, c_sha3_512_digest

	, c_md5_ctx_size
	, c_md5_digest_size
	, c_md5_block_size
	, c_md5_init
	, c_md5_update
	, c_md5_digest

	, c_md2_ctx_size
	, c_md2_digest_size
	, c_md2_block_size
	, c_md2_init
	, c_md2_update
	, c_md2_digest

	, c_md4_ctx_size
	, c_md4_digest_size
	, c_md4_block_size
	, c_md4_init
	, c_md4_update
	, c_md4_digest

	, c_ripemd160_ctx_size
	, c_ripemd160_digest_size
	, c_ripemd160_block_size
	, c_ripemd160_init
	, c_ripemd160_update
	, c_ripemd160_digest

	, c_sha1_ctx_size
	, c_sha1_digest_size
	, c_sha1_block_size
	, c_sha1_init
	, c_sha1_update
	, c_sha1_digest

	, c_gosthash94_ctx_size
	, c_gosthash94_digest_size
	, c_gosthash94_block_size
	, c_gosthash94_init
	, c_gosthash94_update
	, c_gosthash94_digest

	, c_umac32_ctx_size
	, c_umac32_digest_size
	, c_umac32_set_key
	, c_umac32_set_nonce
	, c_umac32_update
	, c_umac32_digest

	, c_umac64_ctx_size
	, c_umac64_digest_size
	, c_umac64_set_key
	, c_umac64_set_nonce
	, c_umac64_update
	, c_umac64_digest

	, c_umac96_ctx_size
	, c_umac96_digest_size
	, c_umac96_set_key
	, c_umac96_set_nonce
	, c_umac96_update
	, c_umac96_digest

	, c_umac128_ctx_size
	, c_umac128_digest_size
	, c_umac128_set_key
	, c_umac128_set_nonce
	, c_umac128_update
	, c_umac128_digest
	) where

import Nettle.Utils

-- internal functions are not camelCase on purpose
{-# ANN module "HLint: ignore Use camelCase" #-}



type NettleHashInit = Ptr Word8 -> IO ()
type NettleHashUpdate = Ptr Word8 -> Word -> Ptr Word8 -> IO ()
type NettleHashDigest = Ptr Word8 -> Word -> Ptr Word8 -> IO ()

c_sha256_ctx_size :: Int
c_sha256_ctx_size = (112)
{-# LINE 149 "src/Crypto/Nettle/Hash/ForeignImports.hsc" #-}
c_sha256_digest_size :: Int
c_sha256_digest_size = 32
{-# LINE 151 "src/Crypto/Nettle/Hash/ForeignImports.hsc" #-}
c_sha256_block_size :: Int
c_sha256_block_size = 64
{-# LINE 153 "src/Crypto/Nettle/Hash/ForeignImports.hsc" #-}
foreign import ccall unsafe "nettle_sha256_init"
	c_sha256_init :: NettleHashInit
foreign import ccall unsafe "nettle_sha256_update"
	c_sha256_update :: NettleHashUpdate
foreign import ccall unsafe "nettle_sha256_digest"
	c_sha256_digest :: NettleHashDigest

c_sha224_ctx_size :: Int
c_sha224_ctx_size = (112)
{-# LINE 162 "src/Crypto/Nettle/Hash/ForeignImports.hsc" #-}
c_sha224_digest_size :: Int
c_sha224_digest_size = 28
{-# LINE 164 "src/Crypto/Nettle/Hash/ForeignImports.hsc" #-}
c_sha224_block_size :: Int
c_sha224_block_size = 64
{-# LINE 166 "src/Crypto/Nettle/Hash/ForeignImports.hsc" #-}
foreign import ccall unsafe "nettle_sha224_init"
	c_sha224_init :: NettleHashInit
foreign import ccall unsafe "nettle_sha256_update"
	c_sha224_update :: NettleHashUpdate
foreign import ccall unsafe "nettle_sha224_digest"
	c_sha224_digest :: NettleHashDigest

c_sha512_ctx_size :: Int
c_sha512_ctx_size = (216)
{-# LINE 175 "src/Crypto/Nettle/Hash/ForeignImports.hsc" #-}
c_sha512_digest_size :: Int
c_sha512_digest_size = 64
{-# LINE 177 "src/Crypto/Nettle/Hash/ForeignImports.hsc" #-}
c_sha512_block_size :: Int
c_sha512_block_size = 128
{-# LINE 179 "src/Crypto/Nettle/Hash/ForeignImports.hsc" #-}
foreign import ccall unsafe "nettle_sha512_init"
	c_sha512_init :: NettleHashInit
foreign import ccall unsafe "nettle_sha512_update"
	c_sha512_update :: NettleHashUpdate
foreign import ccall unsafe "nettle_sha512_digest"
	c_sha512_digest :: NettleHashDigest

c_sha384_ctx_size :: Int
c_sha384_ctx_size = (216)
{-# LINE 188 "src/Crypto/Nettle/Hash/ForeignImports.hsc" #-}
c_sha384_digest_size :: Int
c_sha384_digest_size = 48
{-# LINE 190 "src/Crypto/Nettle/Hash/ForeignImports.hsc" #-}
c_sha384_block_size :: Int
c_sha384_block_size = 128
{-# LINE 192 "src/Crypto/Nettle/Hash/ForeignImports.hsc" #-}
foreign import ccall unsafe "nettle_sha384_init"
	c_sha384_init :: NettleHashInit
foreign import ccall unsafe "nettle_sha512_update"
	c_sha384_update :: NettleHashUpdate
foreign import ccall unsafe "nettle_sha384_digest"
	c_sha384_digest :: NettleHashDigest

c_sha3_224_ctx_size :: Int
c_sha3_224_ctx_size = (352)
{-# LINE 201 "src/Crypto/Nettle/Hash/ForeignImports.hsc" #-}
c_sha3_224_digest_size :: Int
c_sha3_224_digest_size = 28
{-# LINE 203 "src/Crypto/Nettle/Hash/ForeignImports.hsc" #-}
c_sha3_224_block_size :: Int
c_sha3_224_block_size = 144
{-# LINE 205 "src/Crypto/Nettle/Hash/ForeignImports.hsc" #-}
foreign import ccall unsafe "nettle_sha3_224_init"
	c_sha3_224_init :: NettleHashInit
foreign import ccall unsafe "nettle_sha3_224_update"
	c_sha3_224_update :: NettleHashUpdate
foreign import ccall unsafe "nettle_sha3_224_digest"
	c_sha3_224_digest :: NettleHashDigest

c_sha3_256_ctx_size :: Int
c_sha3_256_ctx_size = (344)
{-# LINE 214 "src/Crypto/Nettle/Hash/ForeignImports.hsc" #-}
c_sha3_256_digest_size :: Int
c_sha3_256_digest_size = 32
{-# LINE 216 "src/Crypto/Nettle/Hash/ForeignImports.hsc" #-}
c_sha3_256_block_size :: Int
c_sha3_256_block_size = 136
{-# LINE 218 "src/Crypto/Nettle/Hash/ForeignImports.hsc" #-}
foreign import ccall unsafe "nettle_sha3_256_init"
	c_sha3_256_init :: NettleHashInit
foreign import ccall unsafe "nettle_sha3_256_update"
	c_sha3_256_update :: NettleHashUpdate
foreign import ccall unsafe "nettle_sha3_256_digest"
	c_sha3_256_digest :: NettleHashDigest

c_sha3_384_ctx_size :: Int
c_sha3_384_ctx_size = (312)
{-# LINE 227 "src/Crypto/Nettle/Hash/ForeignImports.hsc" #-}
c_sha3_384_digest_size :: Int
c_sha3_384_digest_size = 48
{-# LINE 229 "src/Crypto/Nettle/Hash/ForeignImports.hsc" #-}
c_sha3_384_block_size :: Int
c_sha3_384_block_size = 104
{-# LINE 231 "src/Crypto/Nettle/Hash/ForeignImports.hsc" #-}
foreign import ccall unsafe "nettle_sha3_384_init"
	c_sha3_384_init :: NettleHashInit
foreign import ccall unsafe "nettle_sha3_384_update"
	c_sha3_384_update :: NettleHashUpdate
foreign import ccall unsafe "nettle_sha3_384_digest"
	c_sha3_384_digest :: NettleHashDigest

c_sha3_512_ctx_size :: Int
c_sha3_512_ctx_size = (280)
{-# LINE 240 "src/Crypto/Nettle/Hash/ForeignImports.hsc" #-}
c_sha3_512_digest_size :: Int
c_sha3_512_digest_size = 64
{-# LINE 242 "src/Crypto/Nettle/Hash/ForeignImports.hsc" #-}
c_sha3_512_block_size :: Int
c_sha3_512_block_size = 72
{-# LINE 244 "src/Crypto/Nettle/Hash/ForeignImports.hsc" #-}
foreign import ccall unsafe "nettle_sha3_512_init"
	c_sha3_512_init :: NettleHashInit
foreign import ccall unsafe "nettle_sha3_512_update"
	c_sha3_512_update :: NettleHashUpdate
foreign import ccall unsafe "nettle_sha3_512_digest"
	c_sha3_512_digest :: NettleHashDigest

c_md5_ctx_size :: Int
c_md5_ctx_size = (96)
{-# LINE 253 "src/Crypto/Nettle/Hash/ForeignImports.hsc" #-}
c_md5_digest_size :: Int
c_md5_digest_size = 16
{-# LINE 255 "src/Crypto/Nettle/Hash/ForeignImports.hsc" #-}
c_md5_block_size :: Int
c_md5_block_size = 64
{-# LINE 257 "src/Crypto/Nettle/Hash/ForeignImports.hsc" #-}
foreign import ccall unsafe "nettle_md5_init"
	c_md5_init :: NettleHashInit
foreign import ccall unsafe "nettle_md5_update"
	c_md5_update :: NettleHashUpdate
foreign import ccall unsafe "nettle_md5_digest"
	c_md5_digest :: NettleHashDigest

c_md2_ctx_size :: Int
c_md2_ctx_size = (84)
{-# LINE 266 "src/Crypto/Nettle/Hash/ForeignImports.hsc" #-}
c_md2_digest_size :: Int
c_md2_digest_size = 16
{-# LINE 268 "src/Crypto/Nettle/Hash/ForeignImports.hsc" #-}
c_md2_block_size :: Int
c_md2_block_size = 16
{-# LINE 270 "src/Crypto/Nettle/Hash/ForeignImports.hsc" #-}
foreign import ccall unsafe "nettle_md2_init"
	c_md2_init :: NettleHashInit
foreign import ccall unsafe "nettle_md2_update"
	c_md2_update :: NettleHashUpdate
foreign import ccall unsafe "nettle_md2_digest"
	c_md2_digest :: NettleHashDigest

c_md4_ctx_size :: Int
c_md4_ctx_size = (96)
{-# LINE 279 "src/Crypto/Nettle/Hash/ForeignImports.hsc" #-}
c_md4_digest_size :: Int
c_md4_digest_size = 16
{-# LINE 281 "src/Crypto/Nettle/Hash/ForeignImports.hsc" #-}
c_md4_block_size :: Int
c_md4_block_size = 64
{-# LINE 283 "src/Crypto/Nettle/Hash/ForeignImports.hsc" #-}
foreign import ccall unsafe "nettle_md4_init"
	c_md4_init :: NettleHashInit
foreign import ccall unsafe "nettle_md4_update"
	c_md4_update :: NettleHashUpdate
foreign import ccall unsafe "nettle_md4_digest"
	c_md4_digest :: NettleHashDigest

c_ripemd160_ctx_size :: Int
c_ripemd160_ctx_size = (104)
{-# LINE 292 "src/Crypto/Nettle/Hash/ForeignImports.hsc" #-}
c_ripemd160_digest_size :: Int
c_ripemd160_digest_size = 20
{-# LINE 294 "src/Crypto/Nettle/Hash/ForeignImports.hsc" #-}
c_ripemd160_block_size :: Int
c_ripemd160_block_size = 64
{-# LINE 296 "src/Crypto/Nettle/Hash/ForeignImports.hsc" #-}
foreign import ccall unsafe "nettle_ripemd160_init"
	c_ripemd160_init :: NettleHashInit
foreign import ccall unsafe "nettle_ripemd160_update"
	c_ripemd160_update :: NettleHashUpdate
foreign import ccall unsafe "nettle_ripemd160_digest"
	c_ripemd160_digest :: NettleHashDigest

c_sha1_ctx_size :: Int
c_sha1_ctx_size = (104)
{-# LINE 305 "src/Crypto/Nettle/Hash/ForeignImports.hsc" #-}
c_sha1_digest_size :: Int
c_sha1_digest_size = 20
{-# LINE 307 "src/Crypto/Nettle/Hash/ForeignImports.hsc" #-}
c_sha1_block_size :: Int
c_sha1_block_size = 64
{-# LINE 309 "src/Crypto/Nettle/Hash/ForeignImports.hsc" #-}
foreign import ccall unsafe "nettle_sha1_init"
	c_sha1_init :: NettleHashInit
foreign import ccall unsafe "nettle_sha1_update"
	c_sha1_update :: NettleHashUpdate
foreign import ccall unsafe "nettle_sha1_digest"
	c_sha1_digest :: NettleHashDigest

c_gosthash94_ctx_size :: Int
c_gosthash94_ctx_size = (104)
{-# LINE 318 "src/Crypto/Nettle/Hash/ForeignImports.hsc" #-}
c_gosthash94_digest_size :: Int
c_gosthash94_digest_size = 32
{-# LINE 320 "src/Crypto/Nettle/Hash/ForeignImports.hsc" #-}
c_gosthash94_block_size :: Int
c_gosthash94_block_size = 32
{-# LINE 322 "src/Crypto/Nettle/Hash/ForeignImports.hsc" #-}
foreign import ccall unsafe "nettle_gosthash94_init"
	c_gosthash94_init :: NettleHashInit
foreign import ccall unsafe "nettle_gosthash94_update"
	c_gosthash94_update :: NettleHashUpdate
foreign import ccall unsafe "nettle_gosthash94_digest"
	c_gosthash94_digest :: NettleHashDigest


c_umac32_ctx_size :: Int
c_umac32_ctx_size = (2392)
{-# LINE 332 "src/Crypto/Nettle/Hash/ForeignImports.hsc" #-}
c_umac32_digest_size :: Int
c_umac32_digest_size = 4
{-# LINE 334 "src/Crypto/Nettle/Hash/ForeignImports.hsc" #-}
foreign import ccall unsafe "nettle_umac32_set_key"
	c_umac32_set_key :: Ptr Word8 -> Ptr Word8 -> IO ()
foreign import ccall unsafe "nettle_umac32_set_nonce"
	c_umac32_set_nonce :: Ptr Word8 -> Word -> Ptr Word8 -> IO ()
foreign import ccall unsafe "nettle_umac32_update"
	c_umac32_update :: Ptr Word8 -> Word -> Ptr Word8 -> IO ()
foreign import ccall unsafe "nettle_umac32_digest"
	c_umac32_digest :: Ptr Word8 -> Word -> Ptr Word8 -> IO ()

c_umac64_ctx_size :: Int
c_umac64_ctx_size = (2520)
{-# LINE 345 "src/Crypto/Nettle/Hash/ForeignImports.hsc" #-}
c_umac64_digest_size :: Int
c_umac64_digest_size = 8
{-# LINE 347 "src/Crypto/Nettle/Hash/ForeignImports.hsc" #-}
foreign import ccall unsafe "nettle_umac64_set_key"
	c_umac64_set_key :: Ptr Word8 -> Ptr Word8 -> IO ()
foreign import ccall unsafe "nettle_umac64_set_nonce"
	c_umac64_set_nonce :: Ptr Word8 -> Word -> Ptr Word8 -> IO ()
foreign import ccall unsafe "nettle_umac64_update"
	c_umac64_update :: Ptr Word8 -> Word -> Ptr Word8 -> IO ()
foreign import ccall unsafe "nettle_umac64_digest"
	c_umac64_digest :: Ptr Word8 -> Word -> Ptr Word8 -> IO ()

c_umac96_ctx_size :: Int
c_umac96_ctx_size = (2640)
{-# LINE 358 "src/Crypto/Nettle/Hash/ForeignImports.hsc" #-}
c_umac96_digest_size :: Int
c_umac96_digest_size = 12
{-# LINE 360 "src/Crypto/Nettle/Hash/ForeignImports.hsc" #-}
foreign import ccall unsafe "nettle_umac96_set_key"
	c_umac96_set_key :: Ptr Word8 -> Ptr Word8 -> IO ()
foreign import ccall unsafe "nettle_umac96_set_nonce"
	c_umac96_set_nonce :: Ptr Word8 -> Word -> Ptr Word8 -> IO ()
foreign import ccall unsafe "nettle_umac96_update"
	c_umac96_update :: Ptr Word8 -> Word -> Ptr Word8 -> IO ()
foreign import ccall unsafe "nettle_umac96_digest"
	c_umac96_digest :: Ptr Word8 -> Word -> Ptr Word8 -> IO ()

c_umac128_ctx_size :: Int
c_umac128_ctx_size = (2768)
{-# LINE 371 "src/Crypto/Nettle/Hash/ForeignImports.hsc" #-}
c_umac128_digest_size :: Int
c_umac128_digest_size = 16
{-# LINE 373 "src/Crypto/Nettle/Hash/ForeignImports.hsc" #-}
foreign import ccall unsafe "nettle_umac128_set_key"
	c_umac128_set_key :: Ptr Word8 -> Ptr Word8 -> IO ()
foreign import ccall unsafe "nettle_umac128_set_nonce"
	c_umac128_set_nonce :: Ptr Word8 -> Word -> Ptr Word8 -> IO ()
foreign import ccall unsafe "nettle_umac128_update"
	c_umac128_update :: Ptr Word8 -> Word -> Ptr Word8 -> IO ()
foreign import ccall unsafe "nettle_umac128_digest"
	c_umac128_digest :: Ptr Word8 -> Word -> Ptr Word8 -> IO ()