summaryrefslogtreecommitdiff
path: root/ext/openssl
diff options
context:
space:
mode:
authoraamine <aamine@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-09-13 16:27:01 +0000
committeraamine <aamine@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-09-13 16:27:01 +0000
commit6db56d9a50bda495ddac87869cfd7777f69f2e7c (patch)
tree60f610769c8c4f353773d5bca389ec484cb78929 /ext/openssl
parent5d0bf5623513d1610b51a479776a21359c82db58 (diff)
* lib/net/https.rb: backported from trunk, rev 1.3. [ruby-dev:25673] (again), [ruby-dev:26617] (again), [ruby-dev:27062]
* ext/openssl/lib/net/https.rb: removed. * ext/openssl/lib/net/protocols.rb: removed. * lib/net/http.rb: #use_ssl?, #use_ssl are moved from net/https. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@9152 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/openssl')
-rw-r--r--ext/openssl/lib/net/https.rb182
-rw-r--r--ext/openssl/lib/net/protocols.rb55
2 files changed, 0 insertions, 237 deletions
diff --git a/ext/openssl/lib/net/https.rb b/ext/openssl/lib/net/https.rb
deleted file mode 100644
index 9d24635..0000000
--- a/ext/openssl/lib/net/https.rb
+++ /dev/null
@@ -1,182 +0,0 @@
-=begin
-= $RCSfile$ -- SSL/TLS enhancement for Net::HTTP.
-
-= Info
- 'OpenSSL for Ruby 2' project
- Copyright (C) 2001 GOTOU Yuuzou <gotoyuzo@notwork.org>
- All rights reserved.
-
-= Licence
- This program is licenced under the same licence as Ruby.
- (See the file 'LICENCE'.)
-
-= Requirements
- This program requires Net 1.2.0 or higher version.
- You can get it from RAA or Ruby's CVS repository.
-
-= Version
- $Id$
-
- 2001/11/06: Contiributed to Ruby/OpenSSL project.
-
-== class Net::HTTP
-
-== Example
-
-Simple HTTP client is here:
-
- require 'net/http'
- host, port, path = "localhost", 80, "/"
- if %r!http://(.*?)(?::(\d+))?(/.*)! =~ ARGV[0]
- host = $1
- port = $2.to_i if $2
- path = $3
- end
- h = Net::HTTP.new(host, port)
- h.get2(path){ |resp| print resp.body }
-
-It can be replaced by follow one:
-
- require 'net/https'
- host, port, path = "localhost", 80, "/"
- if %r!(https?)://(.*?)(?::(\d+))?(/.*)! =~ ARGV[0]
- scheme = $1
- host = $2
- port = $3 ? $3.to_i : ((scheme == "http") ? 80 : 443)
- path = $4
- end
- h = Net::HTTP.new(host, port)
- h.use_ssl = true if scheme == "https" # enable SSL/TLS
- h.get2(path){ |resp| print resp.body }
-
-=== Instance Methods
-
-: use_ssl
- returns ture if use SSL/TLS with HTTP.
-
-: use_ssl=((|true_or_false|))
- sets use_ssl.
-
-: peer_cert
- return the X.509 certificates the server presented.
-
-: key=((|key|))
- Sets an OpenSSL::PKey::RSA or OpenSSL::PKey::DSA object.
- (This method is appeared in Michal Rokos's OpenSSL extention.)
-
-: cert=((|cert|))
- Sets an OpenSSL::X509::Certificate object as client certificate.
- (This method is appeared in Michal Rokos's OpenSSL extention.)
-
-: ca_file=((|path|))
- Sets path of a CA certification file in PEM format.
- The file can contrain several CA certificats.
-
-: ca_path=((|path|))
- Sets path of a CA certification directory containing certifications
- in PEM format.
-
-: verify_mode=((|mode|))
- Sets the flags for server the certification verification at
- begining of SSL/TLS session.
- OpenSSL::SSL::VERIFY_NONE or OpenSSL::SSL::VERIFY_PEER is acceptable.
-
-: verify_callback=((|proc|))
- Sets the verify callback for the server certification verification.
-
-: verify_depth=((|num|))
- Sets the maximum depth for the certificate chain verification.
-
-: cert_store=((|store|))
- Sets the X509::Store to verify peer certificate.
-
-=end
-
-require 'net/protocols'
-require 'net/http'
-
-module Net
- class HTTP
- class Conn < HTTPRequest
- REQUEST_HAS_BODY=false
- RESPONSE_HAS_BODY=false
- METHOD="connect"
-
- def initialize
- super nil, nil
- end
-
- def exec( sock, addr, port, ver )
- @socket = sock
- request(addr, port, ver)
- end
-
- def request( addr, port, ver )
- @socket.writeline sprintf('CONNECT %s:%s HTTP/%s', addr, port, ver)
- @socket.writeline ''
- end
- end
-
- module ProxyMod
- def edit_path( path )
- if use_ssl
- 'https://' + addr_port + path
- else
- 'http://' + addr_port + path
- end
- end
- end
-
- def self.socket_type
- SSLIO
- end
-
- attr_reader :use_ssl
- attr_writer :key, :cert
- attr_writer :ca_file, :ca_path
- attr_writer :verify_mode, :verify_callback, :verify_depth
- attr_writer :cert_store, :timeout
- attr_reader :peer_cert
-
- alias :default_initialize :initialize
-
- def initialize(*args)
- default_initialize(*args)
- @key = @cert = @ca_file = @ca_path = @verify_mode =
- @verify_callback = @verify_depth = @timeout = @cert_store = nil
- @already_connected = false
- end
-
- def use_ssl=(flag)
- if @already_connected && !@use_ssl
- raise ProtocolError, "connection is alrady set up"
- end
- @use_ssl = flag
- end
-
- def on_connect
- if use_ssl
- if proxy?
- Conn.new.exec(@socket, @address, @port, "1.0")
- resp = HTTPResponse.read_new(@socket)
- if resp.code != '200'
- raise resp.message
- end
- end
- @socket.key = @key if @key
- @socket.cert = @cert if @cert
- @socket.ca_file = @ca_file
- @socket.ca_path = @ca_path
- @socket.verify_mode = @verify_mode
- @socket.verify_callback = @verify_callback
- @socket.verify_depth = @verify_depth
- @socket.timeout = @timeout
- @socket.cert_store = @cert_store
- @socket.ssl_connect
- @peer_cert = @socket.peer_cert
- end
- @already_connected = true
- end
-
- end
-end
diff --git a/ext/openssl/lib/net/protocols.rb b/ext/openssl/lib/net/protocols.rb
deleted file mode 100644
index 6fb2703..0000000
--- a/ext/openssl/lib/net/protocols.rb
+++ /dev/null
@@ -1,55 +0,0 @@
-=begin
-= $RCSfile$ -- SSL/TLS enhancement for Net.
-
-= Info
- 'OpenSSL for Ruby 2' project
- Copyright (C) 2001 GOTOU YUUZOU <gotoyuzo@notwork.org>
- All rights reserved.
-
-= Licence
- This program is licenced under the same licence as Ruby.
- (See the file 'LICENCE'.)
-
-= Requirements
- This program requires Net 1.2.0 or higher version.
- You can get it from RAA or Ruby's CVS repository.
-
-= Version
- $Id$
-
- 2001/11/06: Contiributed to Ruby/OpenSSL project.
-=end
-
-require 'net/protocol'
-require 'forwardable'
-require 'openssl'
-
-module Net
- class SSLIO < InternetMessageIO
- extend Forwardable
-
- def_delegators(:@ssl_context,
- :key=, :cert=, :ca_file=, :ca_path=,
- :verify_mode=, :verify_callback=, :verify_depth=,
- :timeout=, :cert_store=)
-
- def initialize(addr, port, otime = nil, rtime = nil, dout = nil)
- super
- @ssl_context = OpenSSL::SSL::SSLContext.new()
- end
-
- def ssl_connect()
- unless @ssl_context.verify_mode
- warn "warning: peer certificate won't be verified in this SSL session."
- @ssl_context.verify_mode = OpenSSL::SSL::VERIFY_NONE
- end
- @socket = OpenSSL::SSL::SSLSocket.new(@socket, @ssl_context)
- @socket.sync_close = true
- @socket.connect
- end
-
- def peer_cert
- @socket.peer_cert
- end
- end
-end