--- /dev/null
+#include <bindings.dsl.h>
+#include <apr_sha1.h>
+
+module Bindings.APR.SHA1 where
+#strict_import
+import Bindings.APR
+
+#num APR_SHA1_DIGESTSIZE
+
+#globalarray APR_SHA1_ID, CChar
+
+#num APR_SHA1PW_IDLEN
+
+#starttype struct apr_sha1_ctx_t
+# array_field digest , <apr_uint32_t>
+# field count_lo, <apr_uint32_t>
+# field count_hi, <apr_uint32_t>
+# array_field data , <apr_uint32_t>
+# field local , CInt
+#stoptype
+
+#ccall apr_sha1_base64 , Ptr CChar -> CInt -> Ptr CChar -> IO ()
+#ccall apr_sha1_init , Ptr <apr_sha1_ctx_t> -> IO ()
+#ccall apr_sha1_update , Ptr <apr_sha1_ctx_t> -> Ptr CChar -> CUInt -> IO ()
+#ccall apr_sha1_update_binary, Ptr <apr_sha1_ctx_t> -> Ptr CUInt -> CUInt -> IO ()
+#ccall apr_sha1_final , Ptr CUChar -> Ptr <apr_sha1_ctx_t> -> IO ()