{-# LINE 1 "Bindings/APR/SHA1.hsc" #-}

{-# LINE 2 "Bindings/APR/SHA1.hsc" #-}

{-# LINE 3 "Bindings/APR/SHA1.hsc" #-}

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

{-# LINE 6 "Bindings/APR/SHA1.hsc" #-}
import Bindings.APR

c'APR_SHA1_DIGESTSIZE = 20
c'APR_SHA1_DIGESTSIZE :: (Num a) => a

{-# LINE 9 "Bindings/APR/SHA1.hsc" #-}

foreign import ccall "array_APR_SHA1_ID" c'APR_SHA1_ID
  :: Ptr (CChar)

{-# LINE 11 "Bindings/APR/SHA1.hsc" #-}

c'APR_SHA1PW_IDLEN = 5
c'APR_SHA1PW_IDLEN :: (Num a) => a

{-# LINE 13 "Bindings/APR/SHA1.hsc" #-}

data C'apr_sha1_ctx_t = C'apr_sha1_ctx_t{
{-# LINE 15 "Bindings/APR/SHA1.hsc" #-}

  c'apr_sha1_ctx_t'digest :: [C'apr_uint32_t]
{-# LINE 16 "Bindings/APR/SHA1.hsc" #-}
,
  c'apr_sha1_ctx_t'count_lo :: C'apr_uint32_t
{-# LINE 17 "Bindings/APR/SHA1.hsc" #-}
,
  c'apr_sha1_ctx_t'count_hi :: C'apr_uint32_t
{-# LINE 18 "Bindings/APR/SHA1.hsc" #-}
,
  c'apr_sha1_ctx_t'data :: [C'apr_uint32_t]
{-# LINE 19 "Bindings/APR/SHA1.hsc" #-}
,
  c'apr_sha1_ctx_t'local :: CInt
{-# LINE 20 "Bindings/APR/SHA1.hsc" #-}

 } 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 ()

{-# LINE 21 "Bindings/APR/SHA1.hsc" #-}

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 ())

{-# LINE 23 "Bindings/APR/SHA1.hsc" #-}
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 ())

{-# LINE 24 "Bindings/APR/SHA1.hsc" #-}
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 ())

{-# LINE 25 "Bindings/APR/SHA1.hsc" #-}
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 ())

{-# LINE 26 "Bindings/APR/SHA1.hsc" #-}
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 ())

{-# LINE 27 "Bindings/APR/SHA1.hsc" #-}