packages feed

cryptonite-openssl 0.5 → 0.6

raw patch · 3 files changed

+35/−7 lines, 3 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

Crypto/OpenSSL/AES.hs view
@@ -27,7 +27,6 @@ import           Foreign.Storable import           Data.ByteString (ByteString) import qualified Data.ByteArray as B-import qualified Data.Memory.PtrMethods as B (memSet)  type GCMCtx = ForeignPtr EVP_CIPHER_CTX @@ -116,10 +115,9 @@  contextNew :: (Ptr EVP_CIPHER_CTX -> IO ()) -> IO GCMCtx contextNew f = do-    ptr <- mallocBytes sizeofEVP-    B.memSet (castPtr ptr) 0 (fromIntegral sizeofEVP)-    f ptr-    newForeignPtr ssl_c_cipher_ctx_cleanup ptr+    fptr <- compatNewEvpCipherCtx+    withForeignPtr fptr f+    return fptr  nullEngine :: Ptr ENGINE nullEngine = nullPtr
Crypto/OpenSSL/AES/Foreign.hsc view
@@ -5,20 +5,31 @@ #include <openssl/opensslv.h> #include <openssl/evp.h> -#if OPENSSL_VERSION_NUMBER > 0x10001000+#if OPENSSL_VERSION_NUMBER >= 0x10100000+#define OPENSSL_HAS_OPAQUE_EVP_CIPHER_CTX+#endif++#if OPENSSL_VERSION_NUMBER >= 0x10001000 #define OPENSSL_HAS_PBKDF2 #define OPENSSL_HAS_GCM #endif +import Foreign.Marshal.Alloc import Foreign.Ptr+import Foreign.ForeignPtr import Foreign.C.Types import Data.Word+#ifndef OPENSSL_HAS_OPAQUE_EVP_CIPHER_CTX+import qualified Data.Memory.PtrMethods as B (memSet)+#endif  gcmTagLength :: Int gcmTagLength = 16 +#ifndef OPENSSL_HAS_OPAQUE_EVP_CIPHER_CTX sizeofEVP :: Int sizeofEVP = (#const sizeof(EVP_CIPHER_CTX))+#endif  data ENGINE @@ -32,14 +43,33 @@ type OutputOffset = Ptr CInt type InputLength = CInt +compatNewEvpCipherCtx :: IO (ForeignPtr EVP_CIPHER_CTX)+compatNewEvpCipherCtx = do+#ifdef OPENSSL_HAS_OPAQUE_EVP_CIPHER_CTX+    ptr <- ssl_c_cipher_ctx_new+    newForeignPtr ssl_c_cipher_ctx_free ptr+#else+    ptr <- mallocBytes sizeofEVP+    B.memSet (castPtr ptr) 0 (fromIntegral sizeofEVP)+    ssl_c_cipher_ctx_init ptr+    newForeignPtr ssl_c_cipher_ctx_cleanup ptr+#endif++#ifdef OPENSSL_HAS_OPAQUE_EVP_CIPHER_CTX+foreign import ccall unsafe "EVP_CIPHER_CTX_new"+    ssl_c_cipher_ctx_new :: IO (Ptr EVP_CIPHER_CTX)+#endif+ foreign import ccall unsafe "EVP_CIPHER_CTX_init"     ssl_c_cipher_ctx_init :: Ptr EVP_CIPHER_CTX -> IO ()  foreign import ccall unsafe "&EVP_CIPHER_CTX_free"     ssl_c_cipher_ctx_free :: FunPtr (Ptr EVP_CIPHER_CTX -> IO ()) +#ifndef OPENSSL_HAS_OPAQUE_EVP_CIPHER_CTX foreign import ccall unsafe "&EVP_CIPHER_CTX_cleanup"     ssl_c_cipher_ctx_cleanup :: FunPtr (Ptr EVP_CIPHER_CTX -> IO ())+#endif  foreign import ccall unsafe "EVP_CIPHER_CTX_ctrl"     ssl_c_cipher_ctx_ctrl :: Ptr EVP_CIPHER_CTX -> CInt -> CInt -> Ptr a -> IO CInt
cryptonite-openssl.cabal view
@@ -1,5 +1,5 @@ Name:                cryptonite-openssl-Version:             0.5+Version:             0.6 Synopsis:            Crypto stuff using OpenSSL cryptographic library Description:         cryptography License:             BSD3