diff options
Diffstat (limited to 'src/BTLS/BoringSSL/Digest.chs')
-rw-r--r-- | src/BTLS/BoringSSL/Digest.chs | 28 |
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#} |