Subject: | t/dhe.t failing with OpenSSL 1.0.1 beta |
I've tried building IO-Socket-SSL on the Fedora development branches,
which were recently updated to have OpenSSL 1.0.1 beta. When I do so,
the t/dhe.t test fails. Turning on TEST_VERBOSE and debug2, I get:
DEBUG: .../IO/Socket/SSL.pm:494: no socket yet
DEBUG: .../IO/Socket/SSL.pm:193: set domain to 2
DEBUG: .../IO/Socket/SSL.pm:334: socket not yet connected
DEBUG: .../IO/Socket/SSL.pm:336: socket connected
DEBUG: .../IO/Socket/SSL.pm:496: accept created normal socket
IO::Socket::SSL=GLOB(0x8558278)
DEBUG: .../IO/Socket/SSL.pm:512: starting sslifying
DEBUG: .../IO/Socket/SSL.pm:354: ssl handshake not started
DEBUG: .../IO/Socket/SSL.pm:1281: SSL accept attempt failed with unknown
errorerror:04075070:rsa routines:RSA_sign:digest too big for rsa key
SSL error: 31249: 1 - error:1409B006:SSL
routines:SSL3_SEND_SERVER_KEY_EXCHANGE:EVP lib
DEBUG: .../IO/Socket/SSL.pm:445: connection failed - connect returned 0
t/dhe.t ....................
1..3
ok # [server] Server Initialization
not ok # [server] accept failed:
Failed 2/3 subtests
If I revert OpenSSL to 1.0.0g, the test passes:
DEBUG: .../IO/Socket/SSL.pm:494: no socket yet
DEBUG: .../IO/Socket/SSL.pm:193: set domain to 2
DEBUG: .../IO/Socket/SSL.pm:334: socket not yet connected
DEBUG: .../IO/Socket/SSL.pm:336: socket connected
DEBUG: .../IO/Socket/SSL.pm:496: accept created normal socket
IO::Socket::SSL=GLOB(0x8cc2a0)
DEBUG: .../IO/Socket/SSL.pm:354: ssl handshake not started
DEBUG: .../IO/Socket/SSL.pm:512: starting sslifying
DEBUG: .../IO/Socket/SSL.pm:600: handshake done, socket ready
DEBUG: .../IO/Socket/SSL.pm:500: accept_SSL ok
DEBUG: .../IO/Socket/SSL.pm:452: ssl handshake done
t/dhe.t ....................
1..3
ok # [server] Server Initialization
ok # [server] Server accepted
ok # [client] client connected
ok
I originally suspected an OpenSSL regression so I reported it on Fedora
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=789447
However, it might also be a problem in IO-Socket-SSL or Net-SSLeay, or
even if not, you might have a better idea where the problem was.