--- src/lib/crypto.c.orig       2018-02-02 15:34:39.420489000 -0600
+++ src/lib/crypto.c    2018-02-02 15:35:44.000524000 -0600
@@ -195,7 +195,7 @@
 IMPLEMENT_ASN1_FUNCTIONS(SignatureData)
 IMPLEMENT_ASN1_FUNCTIONS(CryptoData)

-#if defined(DEFINE_STACK_OF)
+#if ( (OPENSSL_VERSION_NUMBER >= 0x10100000L) && !defined(LIBRESSL_VERSION_NUMBER) )
 DEFINE_STACK_OF(SignerInfo);
 DEFINE_STACK_OF(RecipientInfo);
 #else
--- src/lib/openssl-compat.h.orig       2018-02-02 15:26:04.182557000 -0600
+++ src/lib/openssl-compat.h    2018-02-02 15:27:50.229100000 -0600
@@ -1,7 +1,7 @@
 #ifndef __OPENSSL_COPMAT__H__
 #define __OPENSSL_COPMAT__H__

-#if (OPENSSL_VERSION_NUMBER < 0x10100000L)
+#if ( (OPENSSL_VERSION_NUMBER < 0x10100000L) || defined(LIBRESSL_VERSION_NUMBER) )
 static inline int EVP_PKEY_up_ref(EVP_PKEY *pkey)
 {
        CRYPTO_add(&pkey->references, 1, CRYPTO_LOCK_EVP_PKEY);
--- src/lib/tls.c.orig	2017-11-21 18:37:16.000000000 +0100
+++ src/lib/tls.c	2018-04-16 20:00:54.082000000 +0200
@@ -116,7 +116,7 @@
    ctx = (TLS_CONTEXT *)malloc(sizeof(TLS_CONTEXT));
 
    /* Allocate our OpenSSL TLS Context */
-#if (OPENSSL_VERSION_NUMBER >= 0x10100000L)
+#if ( (OPENSSL_VERSION_NUMBER >= 0x10100000L) || defined(LIBRESSL_VERSION_NUMBER) )
    /* Allows SSLv3, TLSv1, TLSv1.1 and TLSv1.2 protocols */
    ctx->openssl = SSL_CTX_new(TLS_method());
 
