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...
 -> ""
 -> "<HTML><HEAD><meta http-equiv=\"content-type\" content=\"text/html;charset=utf-8\">\n<TITLE>301 Moved</TITLE></HEAD><BODY>\n<H1>301 Moved</H1>\nThe document has moved\n<A HREF=\"https://mail.google.com/mail/\">here</A>.\r\n</BODY></HTML>\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 <main>'
 	from /usr/local/lib/ruby/1.9.1/net/http.rb:732:in `start'
 	from t.rb:11:in `<main>'


This bug was originally reported on mechanize: https://github.com/tenderlove/mechanize/issues#issue/27


-- 
http://redmine.ruby-lang.org