diff --git a/ChangeLog b/ChangeLog
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2020-03-31  Vladimir Shabanov  <dev@vshabanov.com>
+
+	* HsOpenSSL.cabal (Version): Bump version to 0.11.4.18
+
+	* LibreSSL compatibility
+	by Julian Ospald @hasufell (#45, #47)
+
 2019-09-13  Vladimir Shabanov  <dev@vshabanov.com>
 
 	* HsOpenSSL.cabal (Version): Bump version to 0.11.4.17
diff --git a/HsOpenSSL.cabal b/HsOpenSSL.cabal
--- a/HsOpenSSL.cabal
+++ b/HsOpenSSL.cabal
@@ -12,7 +12,7 @@
     <http://hackage.haskell.org/package/tls>, which is a pure Haskell
     implementation of SSL.
     .
-Version:       0.11.4.17
+Version:       0.11.4.18
 License:       PublicDomain
 License-File:  COPYING
 Author:        Adam Langley, Mikhail Vorozhtsov, PHO, Taru Karttunen
diff --git a/cbits/HsOpenSSL.c b/cbits/HsOpenSSL.c
--- a/cbits/HsOpenSSL.c
+++ b/cbits/HsOpenSSL.c
@@ -119,7 +119,7 @@
 #if OPENSSL_VERSION_NUMBER >= 0x10100000L
     return X509_CRL_get0_lastUpdate(crl);
 #else
-    return X509_CRL_get_lastUpdate(crl);
+    return X509_CRL_get_lastUpdate((X509_CRL*) crl);
 #endif
 }
 
@@ -127,7 +127,7 @@
 #if OPENSSL_VERSION_NUMBER >= 0x10100000L
     return X509_CRL_get0_nextUpdate(crl);
 #else
-    return X509_CRL_get_nextUpdate(crl);
+    return X509_CRL_get_nextUpdate((X509_CRL*) crl);
 #endif
 }
 
@@ -204,14 +204,18 @@
 
 /* ASN1 ***********************************************************************/
 
-#if OPENSSL_VERSION_NUMBER >= 0x10100000L
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
 #define M_ASN1_INTEGER_new()    (ASN1_INTEGER *)\
     ASN1_STRING_type_new(V_ASN1_INTEGER)
-#define M_ASN1_INTEGER_free(a)  ASN1_STRING_free((ASN1_STRING *)a)
 #define M_ASN1_TIME_new()       (ASN1_TIME *)\
     ASN1_STRING_type_new(V_ASN1_UTCTIME)
 #define M_ASN1_TIME_free(a)     ASN1_STRING_free((ASN1_STRING *)a)
 #endif
+
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
+#define M_ASN1_INTEGER_free(a)  ASN1_STRING_free((ASN1_STRING *)a)
+#endif
+
 
 ASN1_INTEGER* HsOpenSSL_M_ASN1_INTEGER_new() {
     return M_ASN1_INTEGER_new();
