diff options
author | Liong Sauw Ming <ming@teluu.com> | 2016-11-16 05:53:23 +0000 |
---|---|---|
committer | Liong Sauw Ming <ming@teluu.com> | 2016-11-16 05:53:23 +0000 |
commit | 21a681c52e3e8c1fe95125a87363ee1f846a1ab9 (patch) | |
tree | dfdb16ebeb7918d8c7a8680652f358e8807a5e12 /pjlib | |
parent | 273b7964359262ab42523ea657f3c5313c151988 (diff) |
Re #1975: Add autoconf detection of OpenSSL elliptic curve and sigalg support
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@5483 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjlib')
-rw-r--r-- | pjlib/build/os-auto.mak.in | 6 | ||||
-rw-r--r-- | pjlib/src/pj/ssl_sock_ossl.c | 14 |
2 files changed, 13 insertions, 7 deletions
diff --git a/pjlib/build/os-auto.mak.in b/pjlib/build/os-auto.mak.in index 478cc80f..e4a7970d 100644 --- a/pjlib/build/os-auto.mak.in +++ b/pjlib/build/os-auto.mak.in @@ -33,4 +33,10 @@ export TEST_OBJS += @ac_main_obj@ export TARGETS = $(PJLIB_LIB) $(PJLIB_SONAME) export TARGETS_EXE = $(TEST_EXE) +ifeq (@ac_ssl_has_ec@,1) +export PJLIB_CFLAGS += -DPJ_SSL_SOCK_OSSL_HAS_EC=1 +endif +ifeq (@ac_ssl_has_sigalg@,1) +export PJLIB_CFLAGS += -DPJ_SSL_SOCK_OSSL_HAS_SIGALG=1 +endif diff --git a/pjlib/src/pj/ssl_sock_ossl.c b/pjlib/src/pj/ssl_sock_ossl.c index e4ed7842..5d0cf919 100644 --- a/pjlib/src/pj/ssl_sock_ossl.c +++ b/pjlib/src/pj/ssl_sock_ossl.c @@ -52,7 +52,7 @@ #include <openssl/rand.h> #include <openssl/engine.h> -#if !defined(OPENSSL_NO_EC) +#if defined(PJ_SSL_SOCK_OSSL_HAS_EC) && PJ_SSL_SOCK_OSSL_HAS_EC==1 extern int tls1_ec_nid2curve_id(int nid); extern int tls1_ec_curve_id2nid(int curve_id); #endif @@ -385,7 +385,7 @@ static pj_status_t init_openssl(void) ssl->session = SSL_SESSION_new(); -#if !defined(OPENSSL_NO_EC) +#if defined(PJ_SSL_SOCK_OSSL_HAS_EC) && PJ_SSL_SOCK_OSSL_HAS_EC==1 openssl_curves_num = SSL_get_shared_curve(ssl,-1); if (openssl_curves_num > PJ_ARRAY_SIZE(openssl_curves)) openssl_curves_num = PJ_ARRAY_SIZE(openssl_curves); @@ -999,7 +999,7 @@ static pj_status_t set_cipher_list(pj_ssl_sock_t *ssock) static pj_status_t set_curves_list(pj_ssl_sock_t *ssock) { -#if !defined(OPENSSL_NO_EC) +#if defined(PJ_SSL_SOCK_OSSL_HAS_EC) && PJ_SSL_SOCK_OSSL_HAS_EC==1 int ret; int curves[PJ_SSL_SOCK_MAX_CURVES]; int cnt; @@ -1022,15 +1022,14 @@ static pj_status_t set_curves_list(pj_ssl_sock_t *ssock) if (ret < 1) return GET_SSL_STATUS(ssock); } +#endif return PJ_SUCCESS; -#else - return PJ_ENOTSUP; -#endif } static pj_status_t set_sigalgs(pj_ssl_sock_t *ssock) { +#if defined(PJ_SSL_SOCK_OSSL_HAS_SIGALG) && PJ_SSL_SOCK_OSSL_HAS_SIGALG==1 int ret; if (ssock->param.sigalgs.ptr && ssock->param.sigalgs.slen) { @@ -1045,6 +1044,7 @@ static pj_status_t set_sigalgs(pj_ssl_sock_t *ssock) if (ret < 1) return GET_SSL_STATUS(ssock); } +#endif return PJ_SUCCESS; } @@ -2393,7 +2393,7 @@ PJ_DEF(pj_status_t) pj_ssl_curve_get_availables(pj_ssl_curve curves[], *curve_num = PJ_MIN(*curve_num, openssl_curves_num); for (i = 0; i < *curve_num; ++i) - curves[i] = openssl_curves[i].id; + curves[i] = openssl_curves[i].id; return PJ_SUCCESS; } |