Hello community,
here is the log from the commit of package ghc-cryptonite-openssl for
openSUSE:Factory checked in at 2017-08-31 20:50:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-cryptonite-openssl (Old)
and /work/SRC/openSUSE:Factory/.ghc-cryptonite-openssl.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-cryptonite-openssl"
Thu Aug 31 20:50:23 2017 rev:2 rq:513226 version:0.6
Changes:
--------
---
/work/SRC/openSUSE:Factory/ghc-cryptonite-openssl/ghc-cryptonite-openssl.changes
2017-04-11 09:47:14.143514609 +0200
+++
/work/SRC/openSUSE:Factory/.ghc-cryptonite-openssl.new/ghc-cryptonite-openssl.changes
2017-08-31 20:50:27.793983601 +0200
@@ -1,0 +2,5 @@
+Thu Jul 27 14:08:11 UTC 2017 - [email protected]
+
+- Update to version 0.6.
+
+-------------------------------------------------------------------
Old:
----
cryptonite-openssl-0.5.tar.gz
New:
----
cryptonite-openssl-0.6.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-cryptonite-openssl.spec ++++++
--- /var/tmp/diff_new_pack.S4HIVF/_old 2017-08-31 20:50:28.833837637 +0200
+++ /var/tmp/diff_new_pack.S4HIVF/_new 2017-08-31 20:50:28.837837076 +0200
@@ -19,7 +19,7 @@
%global pkg_name cryptonite-openssl
%bcond_with tests
Name: ghc-%{pkg_name}
-Version: 0.5
+Version: 0.6
Release: 0
Summary: Crypto stuff using OpenSSL cryptographic library
License: BSD-3-Clause
++++++ cryptonite-openssl-0.5.tar.gz -> cryptonite-openssl-0.6.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/cryptonite-openssl-0.5/Crypto/OpenSSL/AES/Foreign.hsc
new/cryptonite-openssl-0.6/Crypto/OpenSSL/AES/Foreign.hsc
--- old/cryptonite-openssl-0.5/Crypto/OpenSSL/AES/Foreign.hsc 2016-11-21
13:06:04.000000000 +0100
+++ new/cryptonite-openssl-0.6/Crypto/OpenSSL/AES/Foreign.hsc 2017-05-13
12:37:47.000000000 +0200
@@ -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
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cryptonite-openssl-0.5/Crypto/OpenSSL/AES.hs
new/cryptonite-openssl-0.6/Crypto/OpenSSL/AES.hs
--- old/cryptonite-openssl-0.5/Crypto/OpenSSL/AES.hs 2016-11-21
13:06:04.000000000 +0100
+++ new/cryptonite-openssl-0.6/Crypto/OpenSSL/AES.hs 2017-05-13
12:37:47.000000000 +0200
@@ -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
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/cryptonite-openssl-0.5/cryptonite-openssl.cabal
new/cryptonite-openssl-0.6/cryptonite-openssl.cabal
--- old/cryptonite-openssl-0.5/cryptonite-openssl.cabal 2017-01-02
22:31:40.000000000 +0100
+++ new/cryptonite-openssl-0.6/cryptonite-openssl.cabal 2017-05-13
12:45:11.000000000 +0200
@@ -1,5 +1,5 @@
Name: cryptonite-openssl
-Version: 0.5
+Version: 0.6
Synopsis: Crypto stuff using OpenSSL cryptographic library
Description: cryptography
License: BSD3