OpenConnect 7.07 fails to build with LibreSSL

Bernard Spil brnrd at FreeBSD.org
Wed Aug 31 06:02:57 PDT 2016


On 2016-08-31 14:26, Bernard Spil wrote:
> Hi,
> 
> We've found issues building OpenConnect 7.07 with LibreSSL which were
> introduced by the OpenSSL 1.1.0 changes. This is caused by LibreSSL
> setting OPENSSL_VERSION_NUMBER to 0x20000000L. The LibreSSL project
> includes a define LIBRESSL_VERSION_NUMBER in openssl/opensslv.h that 
> can
> be used to fix build errors like this.
> 
> I've added the patch to the FreeBSD wiki page on LibreSSL
> (https://wiki.freebsd.org/LibreSSL/Ports)
> 
> --- openssl.c.orig      2016-07-09 14:43:41 UTC
> +++ openssl.c
> @@ -36,11 +36,11 @@
>  #include <openssl/ui.h>
>  #include <openssl/rsa.h>
> 
> -#if OPENSSL_VERSION_NUMBER < 0x10100000L
> +#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined
> (LIBRESSL_VERSION_NUMBER)
>  #define X509_up_ref(x)         CRYPTO_add(&(x)->references, 1,
> CRYPTO_LOCK_X509)
>  #endif
> 
> -#if OPENSSL_VERSION_NUMBER < 0x10100000L
> +#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined
> (LIBRESSL_VERSION_NUMBER)
>  #define EVP_MD_CTX_new EVP_MD_CTX_create
>  #define EVP_MD_CTX_free EVP_MD_CTX_destroy
>  #define X509_STORE_CTX_get0_chain(ctx) ((ctx)->chain)
> @@ -991,7 +991,7 @@ static int set_peer_cert_hash(struct ope
>         return 0;
>  }
> 
> -#if OPENSSL_VERSION_NUMBER < 0x10002000L
> +#if OPENSSL_VERSION_NUMBER < 0x10002000L || defined
> (LIBRESSL_VERSION_NUMBER)
>  static int match_hostname_elem(const char *hostname, int helem_len,
>                                const char *match, int melem_len)
>  {
> --- openssl-esp.c.orig  2016-07-08 15:35:18 UTC
> +++ openssl-esp.c
> @@ -27,7 +27,7 @@
>  #include <openssl/evp.h>
>  #include <openssl/rand.h>
> 
> -#if OPENSSL_VERSION_NUMBER < 0x10100000L
> +#if OPENSSL_VERSION_NUMBER < 0x10100000L ||
> defined(LIBRESSL_VERSION_NUMBER)
> 
>  #define EVP_CIPHER_CTX_free(c) do {                            \
>                                     EVP_CIPHER_CTX_cleanup(c);  \
> @@ -85,7 +85,7 @@ static int init_esp_ciphers(struct openc
>         }
>         EVP_CIPHER_CTX_set_padding(esp->cipher, 0);
> 
> -#if OPENSSL_VERSION_NUMBER < 0x10100000L
> +#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined
> (LIBRESSL_VERSION_NUMBER)
>         esp->hmac = malloc(sizeof(*esp->hmac));
>         esp->pkt_hmac = malloc(sizeof(*esp->pkt_hmac));
>         if (!esp->hmac || &esp->pkt_hmac) {
> 
> Signed-off-by: Bernard Spil <brnrd at FreeBSD.org>
> 
> Hope you'll include this in OpenConnect!
> 
> With kind regards,
> 
> Bernard Spil.
> FreeBSD Ports committer

Hi,

I heard you like git diffs. Please find a git diff against master 
attached.

Cheers,

Bernard.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: patch-openconenct-LibreSSL
Type: text/x-diff
Size: 2008 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/openconnect-devel/attachments/20160831/44c930e0/attachment.bin>


More information about the openconnect-devel mailing list