HsOpenSSL 0.11.7.1 → 0.11.7.2
raw patch · 6 files changed
+42/−12 lines, 6 filesdep ~bytestringdep ~timePVP ok
version bump matches the API change (PVP)
Dependency ranges changed: bytestring, time
API changes (from Hackage documentation)
Files
- ChangeLog +16/−0
- HsOpenSSL.cabal +1/−1
- OpenSSL/Cipher.hsc +4/−2
- OpenSSL/EVP/PKey.hsc +5/−5
- OpenSSL/Session.hsc +9/−4
- cbits/HsOpenSSL.h +7/−0
ChangeLog view
@@ -1,9 +1,25 @@+2021-09-29 Vladimir Shabanov <dev@vshabanov.com>++ * HsOpenSSL.cabal (Version): Bump version to 0.11.7.2++ * Fixed OpenSSL 3.0 linking errors (#62)+ 2021-07-28 Vladimir Shabanov <dev@vshabanov.com> * HsOpenSSL.cabal (Version): Bump version to 0.11.7.1 * Fix SSL_CTX_set_session_id_context #61 by @flobrosch (#61)+++2021-04-19 Vladimir Shabanov <dev@vshabanov.com>++ * HsOpenSSL.cabal (Version): Bump version to 0.11.7++ * Added Session.contextSetDefaultVerifyPaths+ by Alexander Biehl @alexbiehl (#59)++ * Fix for LibreSSL (#58) 2021-04-05 Vladimir Shabanov <dev@vshabanov.com>
HsOpenSSL.cabal view
@@ -10,7 +10,7 @@ systems and stable. You may also be interested in the @tls@ package, <http://hackage.haskell.org/package/tls>, which is a pure Haskell implementation of SSL.-Version: 0.11.7.1+Version: 0.11.7.2 License: PublicDomain License-File: COPYING Author: Adam Langley, Mikhail Vorozhtsov, PHO, Taru Karttunen
OpenSSL/Cipher.hsc view
@@ -1,3 +1,6 @@+#include "HsOpenSSL.h"+#include "openssl/aes.h"+ {-# LANGUAGE EmptyDataDecls #-} {-# LANGUAGE ForeignFunctionInterface #-} -- | This module interfaces to some of the OpenSSL ciphers without using@@ -21,8 +24,7 @@ #endif ) where-#include "HsOpenSSL.h"-#include "openssl/aes.h"+ import Control.Monad (when, unless) import Data.IORef import Foreign
OpenSSL/EVP/PKey.hsc view
@@ -50,13 +50,13 @@ toKeyPair (SomeKeyPair pk) = cast pk -getType :: Ptr EVP_PKEY -> IO CInt -#if OPENSSL_VERSION_NUMBER >= 0x10100000L-foreign import ccall unsafe "EVP_PKEY_base_id"- _base_id :: Ptr EVP_PKEY -> IO CInt-getType = _base_id+#if OPENSSL_VERSION_PREREQ(3,0)+foreign import ccall unsafe "EVP_PKEY_get_base_id" getType :: Ptr EVP_PKEY -> IO CInt+#elif OPENSSL_VERSION_NUMBER >= 0x10100000L+foreign import ccall unsafe "EVP_PKEY_base_id" getType :: Ptr EVP_PKEY -> IO CInt #else+getType :: Ptr EVP_PKEY -> IO CInt getType = (#peek EVP_PKEY, type) #endif
OpenSSL/Session.hsc view
@@ -79,7 +79,7 @@ ) where -#include "openssl/ssl.h"+#include "HsOpenSSL.h" import Prelude hiding ( #if !MIN_VERSION_base(4,6,0)@@ -523,11 +523,13 @@ (#const SSL_ERROR_WANT_CONNECT) -> "SSL_ERROR_WANT_CONNECT" (#const SSL_ERROR_WANT_ACCEPT) -> "SSL_ERROR_WANT_ACCEPT" (#const SSL_ERROR_WANT_X509_LOOKUP) -> "SSL_ERROR_WANT_X509_LOOKUP"-#if OPENSSL_VERSION_NUMBER >= 0x10100000L+#if defined(SSL_ERROR_WANT_ASYNC) (#const SSL_ERROR_WANT_ASYNC) -> "SSL_ERROR_WANT_ASYNC"+#endif+#if defined(SSL_ERROR_WANT_ASYNC_JOB) (#const SSL_ERROR_WANT_ASYNC_JOB) -> "SSL_ERROR_WANT_ASYNC_JOB" #endif-#if OPENSSL_VERSION_NUMBER >= 0x10101000L+#if defined(SSL_ERROR_WANT_CLIENT_HELLO_CB) (#const SSL_ERROR_WANT_CLIENT_HELLO_CB) -> "SSL_ERROR_WANT_CLIENT_HELLO_CB" #endif (#const SSL_ERROR_SYSCALL) -> "SSL_ERROR_SYSCALL"@@ -765,8 +767,11 @@ else return $ SSLDone () _ -> throwSSLException "SSL_shutdown" err n-+#if OPENSSL_VERSION_PREREQ(3,0)+foreign import ccall "SSL_get1_peer_certificate" _ssl_get_peer_cert :: Ptr SSL_ -> IO (Ptr X509_)+#else foreign import ccall "SSL_get_peer_certificate" _ssl_get_peer_cert :: Ptr SSL_ -> IO (Ptr X509_)+#endif -- | After a successful connection, get the certificate of the other party. If -- this is a server connection, you probably won't get a certificate unless
cbits/HsOpenSSL.h view
@@ -38,6 +38,13 @@ #define OPENSSL_VERSION_NUMBER 0x1000107fL #endif +/* OpenSSL 3.0 ****************************************************************/++#ifndef OPENSSL_VERSION_PREREQ+#define OPENSSL_VERSION_PREREQ(maj,min) 0+#endif++ /* OpenSSL ********************************************************************/ void HsOpenSSL_init(); void HsOpenSSL_OPENSSL_free(void* ptr);