rubygems_ssl-client-certs 0.0.2.pre.alpha.pre.52 → 0.0.2.pre.alpha.pre.53

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +8 -8
  2. data/lib/rubygems_plugin.rb +82 -91
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NDYwYmFkNWYwNTRiMDU5OWViMzcyNzBiNTNmMDI5MjUwNWMxNjNhYw==
4
+ MzI1Y2E2MDRhNTNjMzY2MGNiOGFhZjA1ZmU5Y2Q0ZGY4Y2M5YTY3YQ==
5
5
  data.tar.gz: !binary |-
6
- OWUwNTBhOTY3ZTRmNzhmMDNlZGYyYzdjYzhiMDY0MThmZTk1OWQ3Mw==
6
+ ZTJmNjY5NDlmYWVhMjU0M2VlMWM0ZmM5NTE4N2Y1OGI5NTA4MjY1Yw==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- YWQwYjVhMDA3ZmZhMzMzMTIzZmU4YzUyNzFhMzlkN2UyMTkyYjUwMDFkMGVh
10
- MWYwYzMyMDA3NzEzYWJiZDFmYjc0NGMwODc2YjE4YmZiYjcxNTk2NzZhNzdk
11
- NTI2Zjk0YWQ4M2JkMThiZDBmY2I0ZjFhYmQyZDJhMmNkZjcxOTM=
9
+ YTI5ZWE2MTI4ZTc0NjNlZDcxYTMxNzEyOGI3YTg3YmM1ZmQ0Y2NjODgzZmMw
10
+ YjMzNzM3NmVmNjU2MmJjN2I0Y2YxZTc4ZDgyZTQ2YjExMDVjMGJmNDMxYWJj
11
+ ZjM5ZDg2YzhkZTMwZTI4OWVmZmExOGJkYWRkN2Y4NjlhNDk1NmQ=
12
12
  data.tar.gz: !binary |-
13
- YWI0YmM3YTY4YzY0Mjg2ODViNzYwMjM4NzMxMzYyN2FhZmMyM2RkYmNjZjkw
14
- OGJlN2ExYzYyOTg4NWUyMWI5MzNkYTljNjk1MTFjMWZjMjgyODM4NDUxZmFm
15
- MGRiN2U1NjY1YTYxNzA0YWJjZTkzZjFiZmU0MDRiYzBjYTRkNGY=
13
+ YTJlMTZlNjk1OGVjNzhmZWM4YTVhZmVlYmJkZGRlMGZhOWExMzhiODNmMWI1
14
+ MGZiYjA3YjNlYThkM2FlZGI4Y2Q4ODg2ODNkN2U2OGQ2YmNhYmJhOWRhNjIw
15
+ MmQ2MTk2ODY1ZTI2OWNiMDFhMjcyNzI4OWY0MmQ0MmU4NDZhZTI=
@@ -1,120 +1,111 @@
1
1
  require 'rubygems/remote_fetcher'
2
2
 
3
- $stderr.puts "rubygems ssl client certs plugin loading"
3
+ class Gem::ConfigFile
4
4
 
5
- if Gem::Version.new(Gem::VERSION) < Gem::Version.new('2.1.0') then
5
+ attr_reader :ssl_client_cert
6
6
 
7
- class Gem::ConfigFile
7
+ attr_reader :ssl_verify_mode
8
8
 
9
- attr_reader :ssl_client_cert
9
+ attr_reader :ssl_ca_cert
10
10
 
11
- attr_reader :ssl_verify_mode
12
-
13
- attr_reader :ssl_ca_cert
14
- $stderr.puts "loading Gem::ConfigFile monkey patch"
15
-
16
- class << self
17
- unless self.method_defined? :__new__
18
- $stderr.puts "aliasing new to __new__"
19
- alias_method :__new__, :new
20
- end
21
- def new(*args)
22
- $stderr.puts "instantiating new Gem::ConfigFile with patch"
23
- config = __new__(*args)
24
- config.set_ssl_vars
25
- return config
26
- end
11
+ class << self
12
+ unless self.method_defined? :__new__
13
+ alias_method :__new__, :new
27
14
  end
28
-
29
- def set_ssl_vars
30
- $stderr.puts "Configuring SSL variables for Gem::ConfigFile"
31
- @ssl_verify_mode = @hash[:ssl_verify_mode] if @hash.key? :ssl_verify_mode
32
- @ssl_ca_cert = @hash[:ssl_ca_cert] if @hash.key? :ssl_ca_cert
33
- @ssl_ca_cert = ENV['BUNDLE_SSL_CA_CERT'] unless @ssl_ca_cert
34
- @ssl_client_cert = @hash[:ssl_client_cert] if @hash.key? :ssl_client_cert
35
- @ssl_client_cert = ENV['BUNDLE_SSL_CLIENT_CERT'] unless @ssl_client_cert
15
+ if Gem.instance_variable_get(:@configuration) then
16
+ Gem.configuration = Gem::ConfigFile.new []
17
+ end
18
+ def new(*args)
19
+ config = __new__(*args)
20
+ config.set_ssl_vars
21
+ return config
36
22
  end
37
-
38
23
  end
39
24
 
40
- class Gem::RemoteFetcher
25
+ def set_ssl_vars
26
+ @ssl_verify_mode = @hash[:ssl_verify_mode] if @hash.key? :ssl_verify_mode
27
+ @ssl_ca_cert = @hash[:ssl_ca_cert] if @hash.key? :ssl_ca_cert
28
+ @ssl_ca_cert = ENV['BUNDLE_SSL_CA_CERT'] unless @ssl_ca_cert
29
+ @ssl_client_cert = @hash[:ssl_client_cert] if @hash.key? :ssl_client_cert
30
+ @ssl_client_cert = ENV['BUNDLE_SSL_CLIENT_CERT'] unless @ssl_client_cert
31
+ end
41
32
 
42
- def connection_for(uri)
43
- net_http_args = [uri.host, uri.port]
33
+ end
44
34
 
45
- if @proxy_uri and not no_proxy?(uri.host) then
46
- net_http_args += [
47
- @proxy_uri.host,
48
- @proxy_uri.port,
49
- @proxy_uri.user,
50
- @proxy_uri.password
51
- ]
52
- end
35
+ class Gem::RemoteFetcher
53
36
 
54
- connection_id = [Thread.current.object_id, *net_http_args].join ':'
55
- @connections[connection_id] ||= Net::HTTP.new(*net_http_args)
56
- connection = @connections[connection_id]
37
+ def connection_for(uri)
38
+ net_http_args = [uri.host, uri.port]
57
39
 
58
- if https?(uri) and not connection.started? then
59
- configure_connection_for_https(connection)
60
- end
40
+ if @proxy_uri and not no_proxy?(uri.host) then
41
+ net_http_args += [
42
+ @proxy_uri.host,
43
+ @proxy_uri.port,
44
+ @proxy_uri.user,
45
+ @proxy_uri.password
46
+ ]
47
+ end
61
48
 
62
- connection.start unless connection.started?
49
+ connection_id = [Thread.current.object_id, *net_http_args].join ':'
50
+ @connections[connection_id] ||= Net::HTTP.new(*net_http_args)
51
+ connection = @connections[connection_id]
63
52
 
64
- connection
65
- rescue defined?(OpenSSL::SSL) ? OpenSSL::SSL::SSLError : Errno::EHOSTDOWN,
66
- Errno::EHOSTDOWN => e
67
- raise FetchError.new(e.message, uri)
53
+ if https?(uri) and not connection.started? then
54
+ configure_connection_for_https(connection)
68
55
  end
69
56
 
70
- def configure_connection_for_https(connection)
71
- require 'net/https'
72
- connection.use_ssl = true
73
- connection.verify_mode =
74
- Gem.configuration.ssl_verify_mode || OpenSSL::SSL::VERIFY_PEER
75
- store = OpenSSL::X509::Store.new
76
-
77
- if Gem.configuration.ssl_client_cert
78
- pem = File.read(Gem.configuration.ssl_client_cert)
79
- connection.cert = OpenSSL::X509::Certificate.new(pem)
80
- connection.key = OpenSSL::PKey::RSA.new(pem)
81
- else
82
- puts "no Client Cert configured!"
83
- if !Gem.configuration.respond_to?(:ssl_client_cert)
84
- puts "Loaded Gem::ConfigFile does not support ssl_client_cert"
85
- end
86
- end
57
+ connection.start unless connection.started?
87
58
 
88
- if Gem.configuration.ssl_ca_cert
89
- if File.directory? Gem.configuration.ssl_ca_cert
90
- store.add_path Gem.configuration.ssl_ca_cert
91
- else
92
- store.add_file Gem.configuration.ssl_ca_cert
93
- end
94
- else
95
- puts "no CA Cert configured!"
96
- store.set_default_paths
97
- add_rubygems_trusted_certs(store)
98
- end
99
- connection.cert_store = store
100
- rescue LoadError => e
101
- raise unless (e.respond_to?(:path) && e.path == 'openssl') ||
102
- e.message =~ / -- openssl$/
59
+ connection
60
+ rescue defined?(OpenSSL::SSL) ? OpenSSL::SSL::SSLError : Errno::EHOSTDOWN,
61
+ Errno::EHOSTDOWN => e
62
+ raise FetchError.new(e.message, uri)
63
+ end
103
64
 
104
- raise Gem::Exception.new(
105
- 'Unable to require openssl, install OpenSSL and rebuild ruby (preferred) or use non-HTTPS sources')
65
+ def configure_connection_for_https(connection)
66
+ require 'net/https'
67
+ connection.use_ssl = true
68
+ connection.verify_mode =
69
+ Gem.configuration.ssl_verify_mode || OpenSSL::SSL::VERIFY_PEER
70
+ store = OpenSSL::X509::Store.new
71
+
72
+ if Gem.configuration.ssl_client_cert
73
+ pem = File.read(Gem.configuration.ssl_client_cert)
74
+ connection.cert = OpenSSL::X509::Certificate.new(pem)
75
+ connection.key = OpenSSL::PKey::RSA.new(pem)
76
+ else
77
+ puts "no Client Cert configured!"
106
78
  end
107
79
 
108
- def add_rubygems_trusted_certs(store)
109
- pattern = File.expand_path("./ssl_certs/*.pem", File.dirname(__FILE__))
110
- Dir.glob(pattern).each do |ssl_cert_file|
111
- store.add_file ssl_cert_file
80
+ if Gem.configuration.ssl_ca_cert
81
+ if File.directory? Gem.configuration.ssl_ca_cert
82
+ store.add_path Gem.configuration.ssl_ca_cert
83
+ else
84
+ store.add_file Gem.configuration.ssl_ca_cert
112
85
  end
86
+ else
87
+ puts "no CA Cert configured!"
88
+ store.set_default_paths
89
+ add_rubygems_trusted_certs(store)
113
90
  end
91
+ connection.cert_store = store
92
+ rescue LoadError => e
93
+ raise unless (e.respond_to?(:path) && e.path == 'openssl') ||
94
+ e.message =~ / -- openssl$/
95
+
96
+ raise Gem::Exception.new(
97
+ 'Unable to require openssl, install OpenSSL and rebuild ruby (preferred) or use non-HTTPS sources')
98
+ end
114
99
 
115
- def https?(uri)
116
- uri.scheme.downcase == 'https'
100
+ def add_rubygems_trusted_certs(store)
101
+ pattern = File.expand_path("./ssl_certs/*.pem", File.dirname(__FILE__))
102
+ Dir.glob(pattern).each do |ssl_cert_file|
103
+ store.add_file ssl_cert_file
117
104
  end
105
+ end
118
106
 
107
+ def https?(uri)
108
+ uri.scheme.downcase == 'https'
119
109
  end
110
+
120
111
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubygems_ssl-client-certs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2.pre.alpha.pre.52
4
+ version: 0.0.2.pre.alpha.pre.53
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aaron Moses
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-12-18 00:00:00.000000000 Z
11
+ date: 2013-12-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake