aboutsummaryrefslogtreecommitdiff
path: root/src/BTLS/BoringSSL/Digest.chs
diff options
context:
space:
mode:
Diffstat (limited to 'src/BTLS/BoringSSL/Digest.chs')
-rw-r--r--src/BTLS/BoringSSL/Digest.chs28
1 files changed, 12 insertions, 16 deletions
diff --git a/src/BTLS/BoringSSL/Digest.chs b/src/BTLS/BoringSSL/Digest.chs
index 69f3a0a..f675c61 100644
--- a/src/BTLS/BoringSSL/Digest.chs
+++ b/src/BTLS/BoringSSL/Digest.chs
@@ -31,13 +31,12 @@ import BTLS.Result
#include <openssl/digest.h>
-evpMD5, evpSHA1, evpSHA224, evpSHA256, evpSHA384, evpSHA512 :: Ptr EVPMD
-evpMD5 = {#call pure EVP_md5 as ^#}
-evpSHA1 = {#call pure EVP_sha1 as ^#}
-evpSHA224 = {#call pure EVP_sha224 as ^#}
-evpSHA256 = {#call pure EVP_sha256 as ^#}
-evpSHA384 = {#call pure EVP_sha384 as ^#}
-evpSHA512 = {#call pure EVP_sha512 as ^#}
+{#fun pure EVP_md5 as evpMD5 {} -> `Ptr EVPMD'#}
+{#fun pure EVP_sha1 as evpSHA1 {} -> `Ptr EVPMD'#}
+{#fun pure EVP_sha224 as evpSHA224 {} -> `Ptr EVPMD'#}
+{#fun pure EVP_sha256 as evpSHA256 {} -> `Ptr EVPMD'#}
+{#fun pure EVP_sha384 as evpSHA384 {} -> `Ptr EVPMD'#}
+{#fun pure EVP_sha512 as evpSHA512 {} -> `Ptr EVPMD'#}
-- | Memory-safe allocator for 'EVPMDCtx'.
mallocEVPMDCtx :: IO (ForeignPtr EVPMDCtx)
@@ -47,17 +46,14 @@ mallocEVPMDCtx =
foreign import ccall "&btlsFinalizeEVPMDCtx"
btlsFinalizeEVPMDCtxPtr :: FinalizerPtr EVPMDCtx
-evpDigestInitEx :: Ptr EVPMDCtx -> Ptr EVPMD -> Ptr Engine -> IO ()
-evpDigestInitEx ctx md engine =
- requireSuccess $ {#call EVP_DigestInit_ex as ^#} ctx md engine
+{#fun EVP_DigestInit_ex as evpDigestInitEx
+ {`Ptr EVPMDCtx', `Ptr EVPMD', `Ptr Engine'} -> `()' requireSuccess*-#}
-evpDigestUpdate :: Ptr EVPMDCtx -> Ptr a -> CULong -> IO ()
-evpDigestUpdate ctx md bytes =
- alwaysSucceeds $ {#call EVP_DigestUpdate as ^#} ctx (asVoidPtr md) bytes
+{#fun EVP_DigestUpdate as evpDigestUpdate
+ {`Ptr EVPMDCtx', asVoidPtr `Ptr a', id `CULong'} -> `()' alwaysSucceeds*-#}
-evpDigestFinalEx :: Ptr EVPMDCtx -> Ptr CUChar -> Ptr CUInt -> IO ()
-evpDigestFinalEx ctx mdOut outSize =
- alwaysSucceeds $ {#call EVP_DigestFinal_ex as ^#} ctx mdOut outSize
+{#fun EVP_DigestFinal_ex as evpDigestFinalEx
+ {`Ptr EVPMDCtx', id `Ptr CUChar', id `Ptr CUInt'} -> `()' alwaysSucceeds*-#}
evpMaxMDSize :: Int
evpMaxMDSize = {#const EVP_MAX_MD_SIZE#}