diff options
author | Benjamin Barenblat <bbaren@google.com> | 2018-08-31 17:14:38 -0400 |
---|---|---|
committer | Benjamin Barenblat <bbaren@google.com> | 2018-08-31 17:14:38 -0400 |
commit | b1639dda870f22a78136b26295f98585e503fa98 (patch) | |
tree | ff69c9cbf0e4bdcc0e98e005227bf955d30b1682 /src/BTLS/BoringSSL | |
parent | 80f2fb2e3be2c4074fbfb0adbc47746d2d88813b (diff) |
Marshal `ByteString` input arguments to `fun`s
Diffstat (limited to 'src/BTLS/BoringSSL')
-rw-r--r-- | src/BTLS/BoringSSL/Digest.chs | 5 | ||||
-rw-r--r-- | src/BTLS/BoringSSL/HKDF.chs | 11 | ||||
-rw-r--r-- | src/BTLS/BoringSSL/HMAC.chs | 7 |
3 files changed, 14 insertions, 9 deletions
diff --git a/src/BTLS/BoringSSL/Digest.chs b/src/BTLS/BoringSSL/Digest.chs index f675c61..3b21636 100644 --- a/src/BTLS/BoringSSL/Digest.chs +++ b/src/BTLS/BoringSSL/Digest.chs @@ -21,11 +21,12 @@ module BTLS.BoringSSL.Digest , evpMaxMDSize ) where +import Data.ByteString (ByteString) import Foreign (FinalizerPtr, ForeignPtr, Ptr, Storable(alignment, sizeOf)) import Foreign.C.Types {#import BTLS.BoringSSL.Base#} -import BTLS.Cast (asVoidPtr) +import BTLS.Buffer (unsafeUseAsCBuffer) import BTLS.CreateWithFinalizer (createWithFinalizer) import BTLS.Result @@ -50,7 +51,7 @@ foreign import ccall "&btlsFinalizeEVPMDCtx" {`Ptr EVPMDCtx', `Ptr EVPMD', `Ptr Engine'} -> `()' requireSuccess*-#} {#fun EVP_DigestUpdate as evpDigestUpdate - {`Ptr EVPMDCtx', asVoidPtr `Ptr a', id `CULong'} -> `()' alwaysSucceeds*-#} + {`Ptr EVPMDCtx', unsafeUseAsCBuffer* `ByteString'&} -> `()' alwaysSucceeds*-#} {#fun EVP_DigestFinal_ex as evpDigestFinalEx {`Ptr EVPMDCtx', id `Ptr CUChar', id `Ptr CUInt'} -> `()' alwaysSucceeds*-#} diff --git a/src/BTLS/BoringSSL/HKDF.chs b/src/BTLS/BoringSSL/HKDF.chs index 87945d5..7a3181b 100644 --- a/src/BTLS/BoringSSL/HKDF.chs +++ b/src/BTLS/BoringSSL/HKDF.chs @@ -16,18 +16,21 @@ module BTLS.BoringSSL.HKDF ( hkdfExtract, hkdfExpand ) where +import Data.ByteString (ByteString) import Foreign (Ptr) import Foreign.C.Types {#import BTLS.BoringSSL.Base#} +import BTLS.Buffer (unsafeUseAsCBuffer) import BTLS.Result #include <openssl/hkdf.h> {#fun HKDF_extract as hkdfExtract - { id `Ptr CUChar', id `Ptr CULong', `Ptr EVPMD', id `Ptr CUChar', id `CULong' - , id `Ptr CUChar', id `CULong' } -> `()' requireSuccess*-#} + { id `Ptr CUChar', id `Ptr CULong', `Ptr EVPMD' + , unsafeUseAsCBuffer* `ByteString'&, unsafeUseAsCBuffer* `ByteString'& } + -> `()' requireSuccess*-#} {#fun HKDF_expand as hkdfExpand - { id `Ptr CUChar', id `CULong', `Ptr EVPMD', id `Ptr CUChar', id `CULong' - , id `Ptr CUChar', id `CULong' } -> `()' requireSuccess*-#} + { id `Ptr CUChar', id `CULong', `Ptr EVPMD', unsafeUseAsCBuffer* `ByteString'& + , unsafeUseAsCBuffer* `ByteString'& } -> `()' requireSuccess*-#} diff --git a/src/BTLS/BoringSSL/HMAC.chs b/src/BTLS/BoringSSL/HMAC.chs index 1e5e82c..b708f85 100644 --- a/src/BTLS/BoringSSL/HMAC.chs +++ b/src/BTLS/BoringSSL/HMAC.chs @@ -19,11 +19,12 @@ module BTLS.BoringSSL.HMAC , hmacInitEx, hmacUpdate, hmacFinal ) where +import Data.ByteString (ByteString) import Foreign (FinalizerPtr, ForeignPtr, Ptr, Storable(alignment, sizeOf)) import Foreign.C.Types {#import BTLS.BoringSSL.Base#} -import BTLS.Cast (asVoidPtr) +import BTLS.Buffer (unsafeUseAsCBuffer) import BTLS.CreateWithFinalizer (createWithFinalizer) import BTLS.Result @@ -37,11 +38,11 @@ foreign import ccall "&HMAC_CTX_cleanup" hmacCtxCleanup :: FinalizerPtr HMACCtx {#fun HMAC_Init_ex as hmacInitEx - {`Ptr HMACCtx', asVoidPtr `Ptr a', id `CULong', `Ptr EVPMD', `Ptr Engine'} + {`Ptr HMACCtx', unsafeUseAsCBuffer* `ByteString'&, `Ptr EVPMD', `Ptr Engine'} -> `()' requireSuccess*-#} {#fun HMAC_Update as hmacUpdate - {`Ptr HMACCtx', id `Ptr CUChar', id `CULong'} -> `()' alwaysSucceeds*-#} + {`Ptr HMACCtx', unsafeUseAsCBuffer* `ByteString'&} -> `()' alwaysSucceeds*-#} {#fun HMAC_Final as hmacFinal {`Ptr HMACCtx', id `Ptr CUChar', id `Ptr CUInt'} -> `()' requireSuccess*-#} |