module Bindings.APR.SHA1 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
import Bindings.APR
c'APR_SHA1_DIGESTSIZE = 20
c'APR_SHA1_DIGESTSIZE :: (Num a) => a
foreign import ccall "array_APR_SHA1_ID" c'APR_SHA1_ID
:: Ptr (CChar)
c'APR_SHA1PW_IDLEN = 5
c'APR_SHA1PW_IDLEN :: (Num a) => a
data C'apr_sha1_ctx_t = C'apr_sha1_ctx_t{
c'apr_sha1_ctx_t'digest :: [C'apr_uint32_t]
,
c'apr_sha1_ctx_t'count_lo :: C'apr_uint32_t
,
c'apr_sha1_ctx_t'count_hi :: C'apr_uint32_t
,
c'apr_sha1_ctx_t'data :: [C'apr_uint32_t]
,
c'apr_sha1_ctx_t'local :: CInt
} deriving (Eq,Show)
instance Storable C'apr_sha1_ctx_t where
sizeOf _ = 96
alignment = sizeOf
peek p = do
v0 <- peekArray 5 (plusPtr p 0)
v1 <- peekByteOff p 20
v2 <- peekByteOff p 24
v3 <- peekArray 16 (plusPtr p 28)
v4 <- peekByteOff p 92
return $ C'apr_sha1_ctx_t v0 v1 v2 v3 v4
poke p (C'apr_sha1_ctx_t v0 v1 v2 v3 v4) = do
pokeArray (plusPtr p 0) (take 5 v0)
pokeByteOff p 20 v1
pokeByteOff p 24 v2
pokeArray (plusPtr p 28) (take 16 v3)
pokeByteOff p 92 v4
return ()
foreign import ccall "apr_sha1_base64" c'apr_sha1_base64
:: Ptr CChar -> CInt -> Ptr CChar -> IO ()
foreign import ccall "&apr_sha1_base64" p'apr_sha1_base64
:: FunPtr (Ptr CChar -> CInt -> Ptr CChar -> IO ())
foreign import ccall "apr_sha1_init" c'apr_sha1_init
:: Ptr C'apr_sha1_ctx_t -> IO ()
foreign import ccall "&apr_sha1_init" p'apr_sha1_init
:: FunPtr (Ptr C'apr_sha1_ctx_t -> IO ())
foreign import ccall "apr_sha1_update" c'apr_sha1_update
:: Ptr C'apr_sha1_ctx_t -> Ptr CChar -> CUInt -> IO ()
foreign import ccall "&apr_sha1_update" p'apr_sha1_update
:: FunPtr (Ptr C'apr_sha1_ctx_t -> Ptr CChar -> CUInt -> IO ())
foreign import ccall "apr_sha1_update_binary" c'apr_sha1_update_binary
:: Ptr C'apr_sha1_ctx_t -> Ptr CUInt -> CUInt -> IO ()
foreign import ccall "&apr_sha1_update_binary" p'apr_sha1_update_binary
:: FunPtr (Ptr C'apr_sha1_ctx_t -> Ptr CUInt -> CUInt -> IO ())
foreign import ccall "apr_sha1_final" c'apr_sha1_final
:: Ptr CUChar -> Ptr C'apr_sha1_ctx_t -> IO ()
foreign import ccall "&apr_sha1_final" p'apr_sha1_final
:: FunPtr (Ptr CUChar -> Ptr C'apr_sha1_ctx_t -> IO ())