Commit graph

547 commits

Author SHA1 Message Date
akr
3ec72f078c * test/openssl/utils.rb (start_server): Don't close sockets before
threads finished.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48227 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-11-01 14:12:11 +00:00
akr
d5802c512e * test/openssl/test_ssl_session.rb (test_ctx_client_session_cb): Don't
ignore errors of SSL accept.
  (test_ctx_server_session_cb): Ditto.

* test/openssl/utils.rb (server_loop): Add ignore_ssl_accept_error
  argument.
  (start_server): Refine threads waits.

* test/ruby/envutil.rb (assert_join_threads): Show a thread before
  backtrace.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48225 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-11-01 13:10:37 +00:00
akr
a7c425cbf3 * test/openssl/utils.rb (start_server, server_loop): Use a
pipe to stop server instead of shutdown/close a listening socket.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48224 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-11-01 11:41:30 +00:00
headius
88326272bc * test/openssl/test_ssl.rb: Add certificate verification chain
test from JRuby community.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48216 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-31 20:49:51 +00:00
hsbt
51ee0a634e * test/openssl/test_pkey_rsa.rb (OpenSSL#test_sign_verify_memory_leak):
added timeout into testcase for low performance environment.
  [Bug #9984][ruby-core:63367]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47362 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-03 02:33:18 +00:00
hsbt
09ed8ca532 * test/openssl/test_ssl_session.rb: fix indent.
contributed from @spk. [fix GH-698]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47162 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-13 02:03:47 +00:00
naruse
97a4ecb0a3 add timeout
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47144 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-11 18:47:31 +00:00
nobu
981ab867f7 test_x509req.rb: fix for RHEL7
* test/openssl/test_x509req.rb (test_sign_and_verify_rsa_md5): fix
  exception to be rescued.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46904 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-07-23 05:37:09 +00:00
naruse
3b48a96c79 RHEL7 disables MD5
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46903 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-07-23 02:35:06 +00:00
naruse
594eee8543 split assertions into algorithms
CentOS 7 seems finish MD5 support
20140722T140010Z.fail.html.gz

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46899 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-07-22 16:02:05 +00:00
headius
3f103ad0e9 * test/openssl/test_509cert.rb: force sorted order for order-
sensitive test.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46526 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-23 18:59:07 +00:00
usa
5d9eae4abb * test/openssl/test_ssl.rb (OpenSSL::TestSSL#test_verify_result):
shouldn't use same server for respective tests, because the 1st
  test sometimes kills the server main loop silently.
  [Bug #9881] [ruby-dev:48266]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46325 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-03 00:48:29 +00:00
akr
49aac86510 Suppress warnings.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46297 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-01 15:13:59 +00:00
akr
68ac33a511 * ext/openssl/lib/openssl/ssl.rb (SSLServer#accept): Close a socket
if any exception occur. 



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46223 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-29 10:32:19 +00:00
akr
971df741b9 Close fds.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46216 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-28 15:06:39 +00:00
akr
02afafb42a * ext/openssl/ossl_ssl.c (ossl_ssl_close): Fix sync_close to work
when SSL is not started.
  This fix the fd leak by test_https_proxy_authentication in
  test/net/http/test_https_proxy.rb.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46209 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-28 09:09:26 +00:00
akr
9b612d382d * test/lib/minitest/unit.rb: Use Tempfile#close! instead of
Tempfile#unlink to close file descriptors.

* test/openssl/test_config.rb: Ditto.

* test/ruby/test_io.rb: Ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46189 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-27 15:49:13 +00:00
kou
bef1b7f1ca * test/openssl/test_pkcs7.rb: Fix inverted expected and actual values.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46169 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-27 11:57:41 +00:00
hsbt
6eb8acae90 * test/openssl/test_pair.rb: Modify TestSSL#test_read_and_write
to handle partial sysreads. [Bug #7398][ruby-core:49563]
* test/openssl/test_ssl.rb: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46164 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-27 10:03:09 +00:00
svn
08e9b7d66c * remove trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46163 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-27 09:48:30 +00:00
hsbt
bab55ed3f5 * test/openssl/test_pkcs7.rb: Add tests for PKCS7#type= and add_data.
[Feature #7399][ruby-core:49565]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46162 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-27 09:48:27 +00:00
hsbt
64826fa792 * test/openssl/test_hmac.rb (test_binary_update): Added Test for
HMAC signing with UTF-8 String. [Bug #7512][ruby-core:50559]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46161 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-27 09:33:54 +00:00
akr
504453d929 * test/openssl: Join threads.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46108 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-25 05:22:49 +00:00
hsbt
894c04783b * test/openssl/test_partial_record_read.rb: Testing read_nonblock on
a partial TLS record results in IO::WaitReadable by @mohamedhafez.
  [fix GH-547]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46087 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-25 00:07:19 +00:00
akr
b9f770ae8f refactored to test Socket and TCPSocket/TCPServer more consistently.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45871 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-07 23:21:10 +00:00
akr
2dbae9b1f1 * ext/openssl/lib/openssl/ssl.rb (OpenSSL::SSL::SSLServer#accept):
Consider Socket#accept as well as TCPServer#accept.
  Reported by Sam Stelfox.  [ruby-core:62064] [Bug #9750]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45863 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-07 12:48:27 +00:00
akr
1386a2303f refactoring to extract tcp_pair.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45862 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-07 12:22:02 +00:00
nobu
a39b88d2fd ossl_pkey.c: fix memory leak
* ext/openssl/ossl_pkey.c (ossl_pkey_verify): as EVP_VerifyFinal()
  finalizes only a copy of the digest context, the context must be
  cleaned up after initialization by EVP_MD_CTX_cleanup() or a
  memory leak will occur.  [ruby-core:62038] [Bug #9743]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45595 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-04-16 00:51:18 +00:00
emboss
92a5ebb4b1 * test/openssl/test_ssl.rb: Reuse TLS default options from
OpenSSL::SSL::SSLContext::DEFAULT_PARAMS.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45280 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-07 03:15:39 +00:00
naruse
8d67a06b98 fix r45274; it change default but doesn't change tests [Bug #9424]
RUN TESTS BEFORE COMMIT!!!

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45278 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-06 16:42:27 +00:00
tenderlove
e25f3587bd * ext/openssl/ossl_ssl.c: pass read_nonblock options to underlying IO
when SSL session has not been started.

* test/openssl/test_ssl.rb: test for change.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44732 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-01-28 19:31:48 +00:00
nobu
0ede9926f7 openssl/digest.rb: get rid of deprecated class
* ext/openssl/lib/openssl/digest.rb (digest, hexdigest): create
  new instance and call on it directly, to get rid of deprecated
  class OpenSSL::Digest::Digest.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44115 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-10 07:16:01 +00:00
drbrain
e45f56d5db * ext/openssl/lib/openssl/buffering.rb: Return ASCII-8BIT strings from
SSLSocket methods.  [ruby-trunk - Bug #9028]
* test/openssl/test_ssl.rb:  Test for the above.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43964 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-03 01:44:41 +00:00
akr
e4f8f8907c * test/openssl/test_cipher.rb (test_aes_gcm_wrong_tag): Don't use
String#succ because it can make modified (wrong) auth_tag longer
  than 16 bytes.  The longer auth_tag makes that
  EVP_CIPHER_CTX_ctrl (and internally aes_gcm_ctrl) fail.
  [ruby-core:55143] [Bug #8439] reported by Vit Ondruch.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43676 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-14 10:58:15 +00:00
naruse
8db313151d wait until the shutdowning message reaches to the server
see #8831

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42838 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-09-04 18:46:16 +00:00
usa
6d18cc288a * test/openssl/test_pair.rb
(OpenSSL::TestPair#test_write_nonblock_no_exceptions): on some CIs
  such as Debian 6.0, Ubuntu 10.04, CentOS and vc10-x64 (maybe depend
  on OpenSSL version), writing to SSLSocket after SSL_ERROR_WANT_WRITE
  causes SSL_ERROR_SSL "bad write retry".


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42790 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-09-03 01:08:09 +00:00
tenderlove
988ca60565 * io.c (io_read_nonblock): support non-blocking reads without raising
exceptions. As in: `io.read_nonblock(size, exception: false)`
  [ruby-core:38666] [Feature #5138]
* ext/openssl/ossl_ssl.c (ossl_ssl_read_internal): ditto
* ext/stringio/stringio.c (strio_sysread): ditto
* io.c (rb_io_write_nonblock): support non-blocking writes without
  raising an exception.
* ext/openssl/ossl_ssl.c (ossl_ssl_write_internal): ditto
* test/openssl/test_pair.rb (class OpenSSL): tests
* test/ruby/test_io.rb (class TestIO): ditto
* test/socket/test_nonblock.rb (class TestSocketNonblock): ditto
* test/stringio/test_stringio.rb (class TestStringIO): ditto

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42695 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-26 22:41:44 +00:00
charliesome
885147037b * test/openssl/test_ssl.rb: Fix test for CVE-2013-4073.
Patch by Antonio Terceiro. [Bug #8750] [ruby-core:56437]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42429 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-07 21:00:34 +00:00
drbrain
bdbef403a1 * ext/openssl/ossl_asn1.c (asn1time_to_time): Implement YYMMDDhhmmZ
format for ASN.1 UTCTime.  [ruby-trunk - Bug #8664]
* test/openssl/test_asn1.rb:  Test for the above.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42126 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-22 23:44:53 +00:00
emboss
ed92ae818f * test/openssl/test_pkey_ec.rb: Skip tests for "Oakley" curves as
they are not suitable for ECDSA.
  [ruby-core:54881] [Bug #8384]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41829 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-07 23:30:42 +00:00
emboss
0d58bb5598 * ext/openssl/ossl_pkey_ec.c: Ensure compatibility to builds of
OpenSSL with OPENSSL_NO_EC2M defined, but OPENSSL_NO_EC not
  defined.
* test/openssl/test_pkey_ec.rb: Iterate over built-in curves
  (and assert their non-emptiness!) instead of hard-coding them, as
  this may cause problems with respect to the different availability
  of individual curves in individual OpenSSL builds.
  [ruby-core:54881] [Bug #8384]

  Thanks to Vit Ondruch for providing the patch!


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41808 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-05 22:46:42 +00:00
emboss
880bc0e02d * test/openssl/test_x509crl.rb: Remove unused variable.
[ruby-core:53501] [Bug #8114]

  Thanks, Vipul Amler, for pointing this out!


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41807 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-05 22:16:09 +00:00
emboss
a3a62f87e1 * lib/openssl/ssl.rb: Fix SSL client connection crash for SAN marked
critical.
  The patch for CVE-2013-4073 caused SSL crash when a SSL server returns
  the certificate that has critical SAN value.  X509 extension could
  include 2 or 3 elements in it:

  [id, criticality, octet_string] if critical,
  [id, octet_string] if not.

  Making sure to pick the last element of X509 extension and use it as
  SAN value.
  [ruby-core:55685] [Bug #8575]

  Thank you @nahi for providing the patch!


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41805 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-05 21:08:04 +00:00
nagachika
bc47f294ee * ext/openssl/lib/openssl/ssl.rb (verify_certificate_identity): fix
hostname verification. Patched by nahi.

* test/openssl/test_ssl.rb (test_verify_certificate_identity): test for
  above.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41671 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-06-27 11:09:19 +00:00
naruse
8b29525dad * ext/openssl/ossl_bn.c (ossl_bn_initialize): allow Fixnum and Bignum.
[ruby-core:53986] [Feature #8217]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40461 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-04-25 07:02:31 +00:00
akr
8f671120f1 * test/csv/test_features.rb, test/logger/test_logger.rb
test/mkmf/test_have_macro.rb, test/net/http/test_http.rb,
  test/openssl/test_config.rb, test/psych/test_encoding.rb,
  test/psych/test_exception.rb, test/psych/test_psych.rb,
  test/psych/test_tainted.rb, test/readline/test_readline.rb,
  test/rexml/test_contrib.rb, test/ruby/test_autoload.rb,
  test/ruby/test_beginendblock.rb, test/ruby/test_exception.rb,
  test/ruby/test_file.rb, test/ruby/test_io.rb,
  test/ruby/test_marshal.rb, test/ruby/test_process.rb,
  test/ruby/test_require.rb, test/ruby/test_rubyoptions.rb,
  test/syslog/test_syslog_logger.rb, test/webrick/test_httpauth.rb,
  test/zlib/test_zlib.rb: Use Tempfile.create.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40400 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-04-20 23:03:52 +00:00
naruse
053e85e2be * test/openssl/test_cipher.rb: Correct a typo
by jgls <joerg@joergleis.com>
  https://github.com/ruby/ruby/pull/291 fix GH-291

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40361 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-04-18 22:45:12 +00:00
emboss
d6b1ab91dc * ext/openssl/ossl_ssl.c: Correct shutdown behavior w.r.t GC.
* test/openssl/test_ssl.rb: Add tests to verify correct behavior.  

[Bug #8240] Patch provided by Shugo Maeda. Thanks!


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40304 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-04-15 02:04:07 +00:00
headius
0626d9b91c Fix #6154 by introducing new EAGAIN/EWOULDBLOCK/EINPROGRESS
subclasses that include WaitReadable or WaitWritable rather than
extending them into the exception object each time.

* error.c: Capture EGAIN, EWOULDBLOCK, EINPROGRESS exceptions and
  export them for use in WaitReadable/Writable exceptions.
* io.c: Create versions of EAGAIN, EWOULDBLOCK, EINPROGRESS that
  include WaitReadable and WaitWritable. Add rb_readwrite_sys_fail
  for nonblocking failures using those exceptions. Use that
  function in io_getpartial and io_write_nonblock instead of
  rb_mod_sys_fail
* ext/openssl/ossl_ssl.c: Add new SSLError subclasses that include
  WaitReadable and WaitWritable. Use those classes for
  write_would_block and read_would_block instead of rb_mod_sys_fail.
* ext/socket/ancdata.c: Use rb_readwrite_sys_fail instead of
  rb_mod_sys_fail in bsock_sendmsg_internal and
  bsock_recvmsg_internal.
* ext/socket/init.c: Use rb_readwrite_sys_fail instead of
  rb_mod_sys_fail in rsock_s_recvfrom_nonblock and
  rsock_s_connect_nonblock.
* ext/socket/socket.c: Use rb_readwrite_sys_fail instead of
  rb_mod_sys_fail in sock_connect_nonblock.
* include/ruby/ruby.h: Export rb_readwrite_sys_fail for use instead
  of rb_mod_sys_fail. Introduce new constants RB_IO_WAIT_READABLE and
  RB_IO_WAIT_WRITABLE for first arg to rb_readwrite_sys_fail.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40195 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-04-08 19:58:55 +00:00
naruse
7b58445ebd * ext/openssl/ossl_bn.c (ossl_bn_initialize): fix can't create from bn.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40090 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-04-03 18:28:56 +00:00