1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/test/openssl
rhe f26f358930 openssl: add SSLContext#ecdh_curves=
* ext/openssl/ossl_ssl.c (ossl_sslctx_s_alloc): Enable the automatic
  curve selection for ECDH by calling SSL_CTX_set_ecdh_auto(). With
  this a TLS server automatically selects a curve which both the client
  and the server support to use in ECDH. This changes the default
  behavior but users can still disable ECDH by excluding 'ECDH' cipher
  suites from the cipher list (with SSLContext#ciphers=). This commit
  also deprecate #tmp_ecdh_callback=. It was added in Ruby 2.3.0. It
  wraps SSL_CTX_set_tmp_ecdh_callback() which will be removed in OpenSSL
  1.1.0. Its callback receives two values 'is_export' and 'keylength'
  but both are completely useless for determining a curve to use in
  ECDH. The automatic curve selection was introduced to replace this.

  (ossl_sslctx_setup): Deprecate SSLContext#tmp_ecdh_callback=. Emit a
  warning if this is in use.

  (ossl_sslctx_set_ecdh_curves): Add SSLContext#ecdh_curves=. Wrap
  SSL_CTX_set1_curves_list(). If it is not available, this falls back
  to SSL_CTX_set_tmp_ecdh().

  (Init_ossl_ssl): Define SSLContext#ecdh_curves=.

* ext/openssl/extconf.rb: Check the existence of EC_curve_nist2nid(),
  SSL_CTX_set1_curves_list(), SSL_CTX_set_ecdh_auto() and
  SSL_CTX_set_tmp_ecdh_callback().

* ext/openssl/openssl_missing.[ch]: Implement EC_curve_nist2nid() if
  missing.

* test/openssl/test_pair.rb (test_ecdh_callback): Use
  EnvUtil.suppress_warning to suppress deprecated warning.

  (test_ecdh_curves): Test that SSLContext#ecdh_curves= works.

* test/openssl/utils.rb (start_server): Use SSLContext#ecdh_curves=.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55214 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-05-30 09:30:38 +00:00
..
test_asn1.rb openssl: clear OpenSSL error queue before return to Ruby 2016-05-18 04:07:47 +00:00
test_bn.rb openssl: clear OpenSSL error queue before return to Ruby 2016-05-18 04:07:47 +00:00
test_buffering.rb openssl: clear OpenSSL error queue before return to Ruby 2016-05-18 04:07:47 +00:00
test_cipher.rb openssl: drop OpenSSL 0.9.6/0.9.7 support 2016-05-25 08:50:03 +00:00
test_config.rb openssl: clear OpenSSL error queue before return to Ruby 2016-05-18 04:07:47 +00:00
test_digest.rb openssl: clear OpenSSL error queue before return to Ruby 2016-05-18 04:07:47 +00:00
test_engine.rb openssl: clear OpenSSL error queue before return to Ruby 2016-05-18 04:07:47 +00:00
test_fips.rb openssl: clear OpenSSL error queue before return to Ruby 2016-05-18 04:07:47 +00:00
test_hmac.rb openssl: clear OpenSSL error queue before return to Ruby 2016-05-18 04:07:47 +00:00
test_ns_spki.rb openssl: clear OpenSSL error queue before return to Ruby 2016-05-18 04:07:47 +00:00
test_ocsp.rb openssl: clear OpenSSL error queue before return to Ruby 2016-05-18 04:07:47 +00:00
test_pair.rb openssl: add SSLContext#ecdh_curves= 2016-05-30 09:30:38 +00:00
test_partial_record_read.rb Add frozen_string_literal: false for all files 2015-12-16 05:07:31 +00:00
test_pkcs5.rb openssl: clear OpenSSL error queue before return to Ruby 2016-05-18 04:07:47 +00:00
test_pkcs7.rb openssl: drop OpenSSL 0.9.6/0.9.7 support 2016-05-25 08:50:03 +00:00
test_pkcs12.rb openssl: clear OpenSSL error queue before return to Ruby 2016-05-18 04:07:47 +00:00
test_pkey_dh.rb openssl: clear OpenSSL error queue before return to Ruby 2016-05-18 04:07:47 +00:00
test_pkey_dsa.rb openssl: improve handling of password for encrypted PEM 2016-05-20 15:05:25 +00:00
test_pkey_ec.rb openssl: add EC.generate 2016-05-24 16:30:15 +00:00
test_pkey_rsa.rb openssl: improve handling of password for encrypted PEM 2016-05-20 15:05:25 +00:00
test_random.rb test_random.rb: skip old OpenSSL 2016-05-18 08:06:23 +00:00
test_ssl.rb openssl: drop OpenSSL 0.9.6/0.9.7 support 2016-05-25 08:50:03 +00:00
test_ssl_session.rb openssl: drop OpenSSL 0.9.6/0.9.7 support 2016-05-25 08:50:03 +00:00
test_x509attr.rb openssl: check argument type in OpenSSL::X509::Attribute#value= 2016-05-19 04:12:57 +00:00
test_x509cert.rb openssl: clear OpenSSL error queue before return to Ruby 2016-05-18 04:07:47 +00:00
test_x509crl.rb openssl: clear OpenSSL error queue before return to Ruby 2016-05-18 04:07:47 +00:00
test_x509ext.rb openssl: clear OpenSSL error queue before return to Ruby 2016-05-18 04:07:47 +00:00
test_x509name.rb openssl: clear OpenSSL error queue before return to Ruby 2016-05-18 04:07:47 +00:00
test_x509req.rb openssl: clear OpenSSL error queue before return to Ruby 2016-05-18 04:07:47 +00:00
test_x509store.rb openssl: drop OpenSSL 0.9.6/0.9.7 support 2016-05-25 08:50:03 +00:00
utils.rb openssl: add SSLContext#ecdh_curves= 2016-05-30 09:30:38 +00:00