From: Eric Hodel Date: 2011-04-04T05:20:42+09:00 Subject: [ruby-core:35605] [Ruby 1.9 - Bug #4550][Open] Loading an RSA public key during an HTTPS connection corrupts the connection Issue #4550 has been reported by Eric Hodel. ---------------------------------------- Bug #4550: Loading an RSA public key during an HTTPS connection corrupts the connection http://redmine.ruby-lang.org/issues/4550 Author: Eric Hodel Status: Open Priority: Normal Assignee: Category: ext Target version: ruby -v: ruby 1.9.3dev (2011-03-30 trunk 31213) [x86_64-darwin10.6.0] The attached file creates an HTTPS connection to gmail.com then loads an RSA public key. If a private key is loaded the error does not reproduce. Loading of the public key corrupts the HTTPS connection resulting in the following error: SSL_read:: no start line (OpenSSL::SSL::SSLError) full output: $ ruby19 -v -Ilib t.rb ruby 1.9.3dev (2011-03-30 trunk 31213) [x86_64-darwin10.6.0] opening connection to www.gmail.com... opened <- "GET / HTTP/1.1\r\nAccept: */*\r\nUser-Agent: Ruby\r\nHost: www.gmail.com\r\n\r\n" -> "HTTP/1.1 301 Moved Permanently\r\n" -> "Location: https://mail.google.com/mail/\r\n" -> "Content-Type: text/html; charset=UTF-8\r\n" -> "X-Content-Type-Options: nosniff\r\n" -> "Date: Sun, 03 Apr 2011 20:15:44 GMT\r\n" -> "Expires: Tue, 03 May 2011 20:15:44 GMT\r\n" -> "Server: sffe\r\n" -> "Content-Length: 226\r\n" -> "X-XSS-Protection: 1; mode=block\r\n" -> "Cache-Control: public, max-age=2592000\r\n" -> "Age: 123\r\n" -> "\r\n" reading 226 bytes... -> "" -> "\n301 Moved\n

301 Moved

\nThe document has moved\nhere.\r\n\r\n" read 226 bytes Conn keep-alive <- "GET / HTTP/1.1\r\nAccept: */*\r\nUser-Agent: Ruby\r\nHost: www.gmail.com\r\n\r\n" Conn close because of error SSL_read:: no start line /usr/local/lib/ruby/1.9.1/openssl/buffering.rb:174:in `sysread_nonblock': SSL_read:: no start line (OpenSSL::SSL::SSLError) from /usr/local/lib/ruby/1.9.1/openssl/buffering.rb:174:in `read_nonblock' from /usr/local/lib/ruby/1.9.1/net/protocol.rb:139:in `rbuf_fill' from /usr/local/lib/ruby/1.9.1/net/protocol.rb:120:in `readuntil' from /usr/local/lib/ruby/1.9.1/net/protocol.rb:130:in `readline' from /usr/local/lib/ruby/1.9.1/net/http.rb:2517:in `read_status_line' from /usr/local/lib/ruby/1.9.1/net/http.rb:2506:in `read_new' from /usr/local/lib/ruby/1.9.1/net/http.rb:1296:in `transport_request' from /usr/local/lib/ruby/1.9.1/net/http.rb:1271:in `request' from t.rb:18:in `block in
' from /usr/local/lib/ruby/1.9.1/net/http.rb:732:in `start' from t.rb:11:in `
' This bug was originally reported on mechanize: https://github.com/tenderlove/mechanize/issues#issue/27 -- http://redmine.ruby-lang.org