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

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

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

module Bindings.APR.MD5 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/MD5.hsc" #-}
import Bindings.APR
import Bindings.APR.ErrNo
import Bindings.APR.XLate

c'APR_MD5_DIGESTSIZE = 16
c'APR_MD5_DIGESTSIZE :: (Num a) => a

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

data C'apr_md5_ctx_t = C'apr_md5_ctx_t{
{-# LINE 13 "Bindings/APR/MD5.hsc" #-}

  c'apr_md5_ctx_t'state :: [C'apr_uint32_t]
{-# LINE 14 "Bindings/APR/MD5.hsc" #-}
,
  c'apr_md5_ctx_t'count :: [C'apr_uint32_t]
{-# LINE 15 "Bindings/APR/MD5.hsc" #-}
,
  c'apr_md5_ctx_t'buffer :: [CUChar]
{-# LINE 16 "Bindings/APR/MD5.hsc" #-}
,
  c'apr_md5_ctx_t'xlate :: Ptr C'apr_xlate_t
{-# LINE 17 "Bindings/APR/MD5.hsc" #-}

 } deriving (Eq,Show)
instance Storable C'apr_md5_ctx_t where
  sizeOf _ = 92
  alignment = sizeOf
  peek p = do
    v0 <- peekArray 4 (plusPtr p 0)
    v1 <- peekArray 2 (plusPtr p 16)
    v2 <- peekArray 64 (plusPtr p 24)
    v3 <- peekByteOff p 88
    return $ C'apr_md5_ctx_t v0 v1 v2 v3
  poke p (C'apr_md5_ctx_t v0 v1 v2 v3) = do
    pokeArray (plusPtr p 0) (take 4 v0)
    pokeArray (plusPtr p 16) (take 2 v1)
    pokeArray (plusPtr p 24) (take 64 v2)
    pokeByteOff p 88 v3
    return ()

{-# LINE 18 "Bindings/APR/MD5.hsc" #-}

foreign import ccall "apr_md5_init" c'apr_md5_init
  :: Ptr C'apr_md5_ctx_t -> IO C'apr_status_t
foreign import ccall "&apr_md5_init" p'apr_md5_init
  :: FunPtr (Ptr C'apr_md5_ctx_t -> IO C'apr_status_t)

{-# LINE 20 "Bindings/APR/MD5.hsc" #-}
foreign import ccall "apr_md5_set_xlate" c'apr_md5_set_xlate
  :: Ptr C'apr_md5_ctx_t -> Ptr C'apr_xlate_t -> IO C'apr_status_t
foreign import ccall "&apr_md5_set_xlate" p'apr_md5_set_xlate
  :: FunPtr (Ptr C'apr_md5_ctx_t -> Ptr C'apr_xlate_t -> IO C'apr_status_t)

{-# LINE 21 "Bindings/APR/MD5.hsc" #-}
foreign import ccall "apr_md5_update" c'apr_md5_update
  :: Ptr C'apr_md5_ctx_t -> Ptr () -> C'apr_size_t -> IO C'apr_status_t
foreign import ccall "&apr_md5_update" p'apr_md5_update
  :: FunPtr (Ptr C'apr_md5_ctx_t -> Ptr () -> C'apr_size_t -> IO C'apr_status_t)

{-# LINE 22 "Bindings/APR/MD5.hsc" #-}
foreign import ccall "apr_md5_final" c'apr_md5_final
  :: Ptr CUChar -> Ptr C'apr_md5_ctx_t -> IO C'apr_status_t
foreign import ccall "&apr_md5_final" p'apr_md5_final
  :: FunPtr (Ptr CUChar -> Ptr C'apr_md5_ctx_t -> IO C'apr_status_t)

{-# LINE 23 "Bindings/APR/MD5.hsc" #-}
foreign import ccall "apr_md5" c'apr_md5
  :: Ptr CUChar -> Ptr () -> C'apr_size_t -> IO C'apr_status_t
foreign import ccall "&apr_md5" p'apr_md5
  :: FunPtr (Ptr CUChar -> Ptr () -> C'apr_size_t -> IO C'apr_status_t)

{-# LINE 24 "Bindings/APR/MD5.hsc" #-}
foreign import ccall "apr_md5_encode" c'apr_md5_encode
  :: Ptr CChar -> Ptr CChar -> Ptr CChar -> C'apr_size_t -> IO C'apr_status_t
foreign import ccall "&apr_md5_encode" p'apr_md5_encode
  :: FunPtr (Ptr CChar -> Ptr CChar -> Ptr CChar -> C'apr_size_t -> IO C'apr_status_t)

{-# LINE 25 "Bindings/APR/MD5.hsc" #-}
foreign import ccall "apr_password_validate" c'apr_password_validate
  :: Ptr CChar -> Ptr CChar -> IO C'apr_status_t
foreign import ccall "&apr_password_validate" p'apr_password_validate
  :: FunPtr (Ptr CChar -> Ptr CChar -> IO C'apr_status_t)

{-# LINE 26 "Bindings/APR/MD5.hsc" #-}