module Bindings.Nettle.Hash.SHA3 where
import Foreign.Ptr (Ptr,FunPtr,plusPtr)
import Foreign.Ptr (wordPtrToPtr,castPtrToFunPtr)
import Foreign.Storable
import Foreign.C.Types
import Foreign.C.String (CString,CStringLen,CWString,CWStringLen)
import Foreign.Marshal.Alloc (alloca)
import Foreign.Marshal.Array (peekArray,pokeArray)
import Data.Int
import Data.Word
c'SHA3_256_DIGEST_SIZE = 32
c'SHA3_256_DIGEST_SIZE :: (Num a) => a
c'SHA3_256_DATA_SIZE = 136
c'SHA3_256_DATA_SIZE :: (Num a) => a
data C'sha3_256_ctx = C'sha3_256_ctx{
} deriving (Eq,Show)
instance Storable C'sha3_256_ctx where
sizeOf _ = 340
alignment _ = 4
peek p = do
return $ C'sha3_256_ctx
poke p (C'sha3_256_ctx) = do
return ()
foreign import ccall "nettle_sha3_256_init" c'nettle_sha3_256_init
:: Ptr C'sha3_256_ctx -> IO ()
foreign import ccall "&nettle_sha3_256_init" p'nettle_sha3_256_init
:: FunPtr (Ptr C'sha3_256_ctx -> IO ())
foreign import ccall "nettle_sha3_256_update" c'nettle_sha3_256_update
:: Ptr C'sha3_256_ctx -> CUInt -> Ptr CUChar -> IO ()
foreign import ccall "&nettle_sha3_256_update" p'nettle_sha3_256_update
:: FunPtr (Ptr C'sha3_256_ctx -> CUInt -> Ptr CUChar -> IO ())
foreign import ccall "nettle_sha3_256_digest" c'nettle_sha3_256_digest
:: Ptr C'sha3_256_ctx -> CUInt -> Ptr CUChar -> IO ()
foreign import ccall "&nettle_sha3_256_digest" p'nettle_sha3_256_digest
:: FunPtr (Ptr C'sha3_256_ctx -> CUInt -> Ptr CUChar -> IO ())
c'SHA3_224_DIGEST_SIZE = 28
c'SHA3_224_DIGEST_SIZE :: (Num a) => a
c'SHA3_224_DATA_SIZE = 144
c'SHA3_224_DATA_SIZE :: (Num a) => a
data C'sha3_224_ctx = C'sha3_224_ctx{
} deriving (Eq,Show)
instance Storable C'sha3_224_ctx where
sizeOf _ = 348
alignment _ = 4
peek p = do
return $ C'sha3_224_ctx
poke p (C'sha3_224_ctx) = do
return ()
foreign import ccall "nettle_sha3_224_init" c'nettle_sha3_224_init
:: Ptr C'sha3_224_ctx -> IO ()
foreign import ccall "&nettle_sha3_224_init" p'nettle_sha3_224_init
:: FunPtr (Ptr C'sha3_224_ctx -> IO ())
foreign import ccall "nettle_sha3_224_update" c'nettle_sha3_224_update
:: Ptr C'sha3_224_ctx -> CUInt -> Ptr CUChar -> IO ()
foreign import ccall "&nettle_sha3_224_update" p'nettle_sha3_224_update
:: FunPtr (Ptr C'sha3_224_ctx -> CUInt -> Ptr CUChar -> IO ())
foreign import ccall "nettle_sha3_224_digest" c'nettle_sha3_224_digest
:: Ptr C'sha3_224_ctx -> CUInt -> Ptr CUChar -> IO ()
foreign import ccall "&nettle_sha3_224_digest" p'nettle_sha3_224_digest
:: FunPtr (Ptr C'sha3_224_ctx -> CUInt -> Ptr CUChar -> IO ())
c'SHA3_512_DIGEST_SIZE = 64
c'SHA3_512_DIGEST_SIZE :: (Num a) => a
c'SHA3_512_DATA_SIZE = 72
c'SHA3_512_DATA_SIZE :: (Num a) => a
data C'sha3_512_ctx = C'sha3_512_ctx{
} deriving (Eq,Show)
instance Storable C'sha3_512_ctx where
sizeOf _ = 276
alignment _ = 4
peek p = do
return $ C'sha3_512_ctx
poke p (C'sha3_512_ctx) = do
return ()
foreign import ccall "nettle_sha3_512_init" c'nettle_sha3_512_init
:: Ptr C'sha3_512_ctx -> IO ()
foreign import ccall "&nettle_sha3_512_init" p'nettle_sha3_512_init
:: FunPtr (Ptr C'sha3_512_ctx -> IO ())
foreign import ccall "nettle_sha3_512_update" c'nettle_sha3_512_update
:: Ptr C'sha3_512_ctx -> CUInt -> Ptr CUChar -> IO ()
foreign import ccall "&nettle_sha3_512_update" p'nettle_sha3_512_update
:: FunPtr (Ptr C'sha3_512_ctx -> CUInt -> Ptr CUChar -> IO ())
foreign import ccall "nettle_sha3_512_digest" c'nettle_sha3_512_digest
:: Ptr C'sha3_512_ctx -> CUInt -> Ptr CUChar -> IO ()
foreign import ccall "&nettle_sha3_512_digest" p'nettle_sha3_512_digest
:: FunPtr (Ptr C'sha3_512_ctx -> CUInt -> Ptr CUChar -> IO ())
c'SHA3_384_DIGEST_SIZE = 48
c'SHA3_384_DIGEST_SIZE :: (Num a) => a
c'SHA3_384_DATA_SIZE = 104
c'SHA3_384_DATA_SIZE :: (Num a) => a
data C'sha3_384_ctx = C'sha3_384_ctx{
} deriving (Eq,Show)
instance Storable C'sha3_384_ctx where
sizeOf _ = 308
alignment _ = 4
peek p = do
return $ C'sha3_384_ctx
poke p (C'sha3_384_ctx) = do
return ()
foreign import ccall "nettle_sha3_384_init" c'nettle_sha3_384_init
:: Ptr C'sha3_384_ctx -> IO ()
foreign import ccall "&nettle_sha3_384_init" p'nettle_sha3_384_init
:: FunPtr (Ptr C'sha3_384_ctx -> IO ())
foreign import ccall "nettle_sha3_384_update" c'nettle_sha3_384_update
:: Ptr C'sha3_384_ctx -> CUInt -> Ptr CUChar -> IO ()
foreign import ccall "&nettle_sha3_384_update" p'nettle_sha3_384_update
:: FunPtr (Ptr C'sha3_384_ctx -> CUInt -> Ptr CUChar -> IO ())
foreign import ccall "nettle_sha3_384_digest" c'nettle_sha3_384_digest
:: Ptr C'sha3_384_ctx -> CUInt -> Ptr CUChar -> IO ()
foreign import ccall "&nettle_sha3_384_digest" p'nettle_sha3_384_digest
:: FunPtr (Ptr C'sha3_384_ctx -> CUInt -> Ptr CUChar -> IO ())