On Sunday, 10 January 2016, 15:15:49 CET, Arne Schwabe wrote:
> On 10.01.2016 14:44, Niels Ole Salscheider wrote:
> > Signed-off-by: Niels Ole Salscheider <niels_...@salscheider-online.de>
> > ---
> > 
> >  src/openvpn/ssl_openssl.c | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> > 
> > diff --git a/src/openvpn/ssl_openssl.c b/src/openvpn/ssl_openssl.c
> > index d2f40e7..e390f4d 100644
> > --- a/src/openvpn/ssl_openssl.c
> > +++ b/src/openvpn/ssl_openssl.c
> > @@ -358,7 +358,7 @@ tls_ctx_check_cert_time (const struct tls_root_ctx
> > *ctx)> 
> >    ASSERT (ctx);
> > 
> > -#if OPENSSL_VERSION_NUMBER >= 0x10002000L
> > +#if OPENSSL_VERSION_NUMBER >= 0x10002000L &&
> > !defined(LIBRESSL_VERSION_NUMBER)> 
> >    /* OpenSSL 1.0.2 and up */
> >    cert = SSL_CTX_get0_certificate (ctx->ctx);
> >  
> >  #else
> > 
> > @@ -393,7 +393,7 @@ tls_ctx_check_cert_time (const struct tls_root_ctx
> > *ctx)> 
> >      }
> >  
> >  cleanup:
> > -#if OPENSSL_VERSION_NUMBER < 0x10002000L
> > +#if OPENSSL_VERSION_NUMBER < 0x10002000L ||
> > defined(LIBRESSL_VERSION_NUMBER)> 
> >    SSL_free (ssl);
> >  
> >  #endif
> >  
> >    return;
> 
> LibreSSL is like: We are OpenSSL 1.0.2 but have a different API?! That
> sounds like a LibreSSL bug.

LibreSSL just returns its version number in OPENSSL_VERSION_NUMBER (which is 
currently higher than OpenSSL's one). Since they removed some old stuff they 
cannot offer a superset of OpenSSL's API anyway and thus it is not clear how 
to choose the "right" value (according to your reasoning) for 
OPENSSL_VERSION_NUMBER.
I guess we have no choice but to handle this ourselves (or to leave it broken 
for LibreSSL).

Ole

> Arne



Reply via email to