Check that openssl has ECC support during configure

This allows builds on machines with a crippled openssl to fail early
during configure. Bugfix on 0.2.7.1-alpha, which introduced the
requirement for ECC support. Fixes bug 17109.
This commit is contained in:
Sebastian Hahn 2015-09-19 16:36:55 +02:00 committed by Nick Mathewson
parent c84f3c9177
commit ae98dd255b
2 changed files with 17 additions and 0 deletions

4
changes/bug17109 Normal file
View File

@ -0,0 +1,4 @@
o Minor bugfixes:
- Fail during configure if we're trying to build against an OpenSSL
built without ECC support. Fixes bug 17109, bugfix on
0.2.7.1-alpha which started requiring ECC.

View File

@ -642,6 +642,19 @@ AC_TRY_COMPILE([
[ : ],
[ AC_ERROR([OpenSSL is too old. We require 1.0.0 or later. You can specify a path to a newer one with --with-openssl-dir.]) ])
AC_TRY_COMPILE([
#include <openssl/opensslv.h>
#include <openssl/evp.h>
#if defined(OPENSSL_NO_EC) || defined(OPENSSL_NO_ECDH) || defined(OPENSSL_NO_ECDSA)
#error "no ECC"
#endif
#if !defined(NID_X9_62_prime256v1) || !defined(NID_secp224r1)
#error "curves unavailable"
#endif
], [],
[ : ],
[ AC_ERROR([OpenSSL is built without full ECC support, including curves P256 and P224. You can specify a path to one with ECC support with --with-openssl-dir.]) ])
AC_CHECK_MEMBERS([struct ssl_method_st.get_cipher_by_char], , ,
[#include <openssl/ssl.h>
])