![]() System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /var/lib/gems/2.5.0/gems/eventmachine-1.2.7/tests/ |
Upload File : |
require 'em_test_helper' class TestSslDhParam < Test::Unit::TestCase def setup $dir = File.dirname(File.expand_path(__FILE__)) + '/' $dhparam_file = File.join($dir, 'dhparam.pem') end module Client def post_init start_tls end def ssl_handshake_completed $client_handshake_completed = true $client_cipher_name = get_cipher_name close_connection end def unbind EM.stop_event_loop end end module Server def post_init start_tls(:dhparam => $dhparam_file, :cipher_list => "DHE,EDH") end def ssl_handshake_completed $server_handshake_completed = true $server_cipher_name = get_cipher_name end end module NoDhServer def post_init start_tls(:cipher_list => "DHE,EDH") end def ssl_handshake_completed $server_handshake_completed = true $server_cipher_name = get_cipher_name end end def test_no_dhparam omit_unless(EM.ssl?) omit_if(EM.library_type == :pure_ruby) # DH will work with defaults omit_if(rbx?) $client_handshake_completed, $server_handshake_completed = false, false $server_cipher_name, $client_cipher_name = nil, nil EM.run { EM.start_server("127.0.0.1", 16784, NoDhServer) EM.connect("127.0.0.1", 16784, Client) } assert(!$client_handshake_completed) assert(!$server_handshake_completed) end def test_dhparam omit_unless(EM.ssl?) omit_if(rbx?) $client_handshake_completed, $server_handshake_completed = false, false $server_cipher_name, $client_cipher_name = nil, nil EM.run { EM.start_server("127.0.0.1", 16784, Server) EM.connect("127.0.0.1", 16784, Client) } assert($client_handshake_completed) assert($server_handshake_completed) assert($client_cipher_name.length > 0) assert_equal($client_cipher_name, $server_cipher_name) assert_match(/^(DHE|EDH)/, $client_cipher_name) end end