diff options
author | Kazuki Yamaguchi <k@rhe.jp> | 2016-04-14 14:06:38 +0900 |
---|---|---|
committer | Kazuki Yamaguchi <k@rhe.jp> | 2016-04-21 00:46:34 +0900 |
commit | e4b37492637a697c7d0d10adcd088fe0788b10ad (patch) | |
tree | 833f1acfd13b670647ec1b3c4deb890f6b3dc0dd | |
parent | 3cb900140bce5fc2ca9e55180664565d026b1498 (diff) | |
download | ruby-e4b37492637a697c7d0d10adcd088fe0788b10ad.tar.gz |
ssl: move ossl_tmp_ecdh_callback
-rw-r--r-- | ext/openssl/ossl_ssl.c | 28 |
1 files changed, 13 insertions, 15 deletions
diff --git a/ext/openssl/ossl_ssl.c b/ext/openssl/ossl_ssl.c index 69bbc1e16e..fc741cf7fa 100644 --- a/ext/openssl/ossl_ssl.c +++ b/ext/openssl/ossl_ssl.c @@ -270,6 +270,18 @@ ossl_tmp_dh_callback(SSL *ssl, int is_export, int keylength) } #endif /* OPENSSL_NO_DH */ +#if defined(HAVE_SSL_CTX_SET_TMP_ECDH_CALLBACK) +static EC_KEY * +ossl_tmp_ecdh_callback(SSL *ssl, int is_export, int keylength) +{ + int nid = (int)(VALUE)SSL_CTX_get_ex_data(SSL_get_SSL_CTX(ssl), ossl_ssl_ex_ec_nid_idx); + if (nid) + return EC_KEY_new_by_curve_name(nid); + else + return NULL; +} +#endif /* HAVE_SSL_CTX_SET_TMP_ECDH_CALLBACK */ + static int ossl_ssl_verify_callback(int preverify_ok, X509_STORE_CTX *ctx) { @@ -685,9 +697,7 @@ ossl_sslctx_setup(VALUE self) #endif #if defined(HAVE_SSL_CTX_SET_TMP_ECDH_CALLBACK) - if (RTEST(ossl_sslctx_get_tmp_ecdh_cb(self))){ - SSL_CTX_set_tmp_ecdh_callback(ctx, ossl_tmp_ecdh_callback); - } + SSL_CTX_set_tmp_ecdh_callback(ctx, ossl_tmp_ecdh_callback); #endif val = ossl_sslctx_get_cert_store(self); @@ -977,18 +987,6 @@ ossl_sslctx_set_security_level(VALUE self, VALUE v) } #ifndef OPENSSL_NO_EC -#if defined(HAVE_SSL_CTX_SET_TMP_ECDH_CALLBACK) -static EC_KEY * -ossl_tmp_ecdh_callback(SSL *ssl, int is_export, int keylength) -{ - int nid = (int)SSL_CTX_get_ex_data(SSL_get_SSL_CTX(ssl), ossl_ssl_ex_ec_nid_idx); - if (nid) - return EC_KEY_new_by_curve_name(nid); - else - return NULL; -} -#endif - /* * call-seq: * ctx.set_elliptic_curves("curve1:curve2:curve3") -> self |