keyEncipherment should be set only when the subject public key is used for key transport, and dataEncipherment only when it is used to directly encrypt user data. RubyGems uses the key for neither purpose. These key usages are also not ...rhenium (Kazuki Yamaguchi)
Fix some typos, document that assigning 0 has the same effect as assigning nil, and mention that SSLContext#security_level= may also affect protocol version selection. https://github.com/ruby/openssl/commit/d005e6d16brhenium (Kazuki Yamaguchi)
Since we have dropped support for OpenSSL 1.0.2, all versions of OpenSSL and compatible libraries we currently support can speak TLS 1.2 and TLS 1.3. We can use this to simplify tests around the protocol version negotiation. https://git...rhenium (Kazuki Yamaguchi)
Some tests expect server-side SSLSocket#accept to fail for various reasons. On some systems, closing the underlying socket immediately with IO#close causes the TCP connection to be terminated with RST. Do not close it immediately so tha...rhenium (Kazuki Yamaguchi)
Update more tests to use start_server_proc instead of UNIXSocket.pair. It runs threads with timeout and prevents "rake test" from hanging indefinitely. It also produces better error messages when a test fails. https://github.com/ruby/op...rhenium (Kazuki Yamaguchi)
r8081 originally intended test_pair.rb for testing methods that behave like IO. Move tests for #{get,read}byte, #sys{read,write}, #close_write, and IO.copy_stream from test_ssl.rb to test_pair.rb. Similarly, move tests for methods that...rhenium (Kazuki Yamaguchi)
OpenSSL::SSL::SSLSocket only depends on T_FILE and a small number of methods defined on IO, so the difference between TCPSocket and Socket is not significant for these tests. Test only one of them to reduce the test run time by half. Ad...rhenium (Kazuki Yamaguchi)
Break it into multiple pieces and simplify: - Let callers pass a complete SSLContext object instead of a callback proc ctx_proc to mutate it. - Add a variant start_server_proc for tests that need finer control, and remove t...rhenium (Kazuki Yamaguchi)
Although OpenSSL::SSL::SSLServer presents itself as a TCPServer-like wrapper, its design has flaws. Document OpenSSL::SSL::SSLServer as deprecated and recommend using OpenSSL::SSL::SSLSocket directly. SSLServer#accept calls #accept on t...rhenium (Kazuki Yamaguchi)
This fixes tests with Ruby master, where unshareable T_DATA is copied across Ractor via Marshal. https://github.com/ruby/openssl/commit/943fe2340erhenium (Kazuki Yamaguchi)