/usr/lib/ruby/1.8/mechanize/chain/ssl_resolver.rb is in libwww-mechanize-ruby1.8 1.0.0-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | class Mechanize
class Chain
class SSLResolver
include Mechanize::Handler
def initialize(ca_file, verify_callback, cert, key, pass)
@ca_file = ca_file
@verify_callback = verify_callback
@cert = cert
@key = key
@pass = pass
end
def handle(ctx, params)
uri = params[:uri]
http_obj = params[:connection]
ssl = nil
if http_obj.instance_variable_defined?(:@ssl_context)
ssl = http_obj.instance_variable_get(:@ssl_context)
end
if uri.scheme == 'https' && ! http_obj.started? && (ssl.nil? || ! ssl.frozen?)
http_obj.use_ssl = true
http_obj.verify_mode = OpenSSL::SSL::VERIFY_NONE
if @ca_file
http_obj.ca_file = @ca_file
http_obj.verify_mode = OpenSSL::SSL::VERIFY_PEER
http_obj.verify_callback = @verify_callback if @verify_callback
end
if @cert && @key
http_obj.cert = OpenSSL::X509::Certificate.new(::File.read(@cert))
http_obj.key = OpenSSL::PKey::RSA.new(::File.read(@key), @pass)
end
end
super
end
end
end
end
|