Hello community,
here is the log from the commit of package rubygem-httpclient for
openSUSE:Factory checked in at 2016-09-12 13:26:20
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-httpclient (Old)
and /work/SRC/openSUSE:Factory/.rubygem-httpclient.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-httpclient"
Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-httpclient/rubygem-httpclient.changes
2016-08-25 09:55:02.000000000 +0200
+++
/work/SRC/openSUSE:Factory/.rubygem-httpclient.new/rubygem-httpclient.changes
2016-09-12 13:26:23.000000000 +0200
@@ -1,0 +2,6 @@
+Tue Aug 16 04:30:08 UTC 2016 - [email protected]
+
+- updated to version 2.8.2.1
+ no changelog found
+
+-------------------------------------------------------------------
Old:
----
httpclient-2.8.1.gem
New:
----
httpclient-2.8.2.1.gem
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rubygem-httpclient.spec ++++++
--- /var/tmp/diff_new_pack.YNGBW0/_old 2016-09-12 13:26:24.000000000 +0200
+++ /var/tmp/diff_new_pack.YNGBW0/_new 2016-09-12 13:26:24.000000000 +0200
@@ -24,7 +24,7 @@
#
Name: rubygem-httpclient
-Version: 2.8.1
+Version: 2.8.2.1
Release: 0
%define mod_name httpclient
%define mod_full_name %{mod_name}-%{version}
++++++ httpclient-2.8.1.gem -> httpclient-2.8.2.1.gem ++++++
Files old/checksums.yaml.gz and new/checksums.yaml.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/httpclient/jruby_ssl_socket.rb
new/lib/httpclient/jruby_ssl_socket.rb
--- old/lib/httpclient/jruby_ssl_socket.rb 2016-08-07 09:30:27.000000000
+0200
+++ new/lib/httpclient/jruby_ssl_socket.rb 2016-08-16 04:30:22.000000000
+0200
@@ -316,6 +316,7 @@
return if cert_source == :default
if cert_source.respond_to?(:to_pem)
pem = cert_source.to_pem
+ load_pem(pem)
elsif File.directory?(cert_source)
warn("#{cert_source}: directory not yet supported")
return
@@ -326,7 +327,8 @@
when /-----BEGIN CERTIFICATE-----/
pem = ''
when /-----END CERTIFICATE-----/
- break
+ load_pem(pem)
+ # keep parsing in case where multiple certificates in a file
else
if pem
pem << line
@@ -334,9 +336,6 @@
end
end
end
- cert = PEMUtils.read_certificate(pem)
- @size += 1
- @trust_store.setCertificateEntry("cert_#{@size}", cert)
end
def trust_store
@@ -346,6 +345,14 @@
@trust_store
end
end
+
+ private
+
+ def load_pem(pem)
+ cert = PEMUtils.read_certificate(pem)
+ @size += 1
+ @trust_store.setCertificateEntry("cert_#{@size}", cert)
+ end
end
# Ported from commons-httpclient 'BrowserCompatHostnameVerifier'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/httpclient/session.rb
new/lib/httpclient/session.rb
--- old/lib/httpclient/session.rb 2016-08-07 09:30:27.000000000 +0200
+++ new/lib/httpclient/session.rb 2016-08-16 04:30:22.000000000 +0200
@@ -21,7 +21,7 @@
require 'httpclient/timeout' # TODO: remove this once we drop 1.8 support
require 'httpclient/ssl_config'
require 'httpclient/http'
-if defined?(JRuby)
+if RUBY_ENGINE == 'jruby'
require 'httpclient/jruby_ssl_socket'
else
require 'httpclient/ssl_socket'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/httpclient/ssl_config.rb
new/lib/httpclient/ssl_config.rb
--- old/lib/httpclient/ssl_config.rb 2016-08-07 09:30:27.000000000 +0200
+++ new/lib/httpclient/ssl_config.rb 2016-08-16 04:30:22.000000000 +0200
@@ -39,21 +39,27 @@
if SSLEnabled
include OpenSSL
- module ::OpenSSL
- module X509
- class Store
- attr_reader :_httpclient_cert_store_items
-
- def initialize(*a, &b)
- super(*a, &b)
- @_httpclient_cert_store_items = [ENV['SSL_CERT_FILE'] ||
:default]
- end
+ if RUBY_ENGINE == 'jruby'
+ module ::OpenSSL
+ module X509
+ class Store
+ attr_reader :_httpclient_cert_store_items
+
+ # TODO: use prepend instead when we drop JRuby + 1.9.x support
+ wrapped = {}
+
+ wrapped[:initialize] = instance_method(:initialize)
+ define_method(:initialize) do |*args|
+ wrapped[:initialize].bind(self).call(*args)
+ @_httpclient_cert_store_items = [ENV['SSL_CERT_FILE'] ||
:default]
+ end
- [:add_cert, :add_file, :add_path].each do |m|
- wrapped = instance_method(m)
- define_method(m) do |cert|
- wrapped.bind(self).call(cert)
- @_httpclient_cert_store_items << cert
+ [:add_cert, :add_file, :add_path].each do |m|
+ wrapped[m] = instance_method(m)
+ define_method(m) do |cert|
+ wrapped[m].bind(self).call(cert)
+ @_httpclient_cert_store_items << cert
+ end
end
end
end
@@ -112,7 +118,7 @@
attr_reader :client_ca # :nodoc:
# These array keeps original files/dirs that was added to @cert_store
- def cert_store_items; @cert_store._httpclient_cert_store_items; end
+ def cert_store_items; @cert_store._httpclient_cert_store_items || []; end
attr_reader :cert_store_crl_items
# Creates a SSLConfig.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/httpclient/version.rb
new/lib/httpclient/version.rb
--- old/lib/httpclient/version.rb 2016-08-07 09:30:27.000000000 +0200
+++ new/lib/httpclient/version.rb 2016-08-16 04:30:22.000000000 +0200
@@ -1,3 +1,3 @@
class HTTPClient
- VERSION = '2.8.1'
+ VERSION = '2.8.2.1'
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/metadata new/metadata
--- old/metadata 2016-08-07 09:30:27.000000000 +0200
+++ new/metadata 2016-08-16 04:30:22.000000000 +0200
@@ -1,14 +1,14 @@
--- !ruby/object:Gem::Specification
name: httpclient
version: !ruby/object:Gem::Version
- version: 2.8.1
+ version: 2.8.2.1
platform: ruby
authors:
- Hiroshi Nakamura
autorequire:
bindir: bin
cert_chain: []
-date: 2016-08-07 00:00:00.000000000 Z
+date: 2016-08-16 00:00:00.000000000 Z
dependencies: []
description:
email: [email protected]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/test/test_ssl.rb new/test/test_ssl.rb
--- old/test/test_ssl.rb 2016-08-07 09:30:27.000000000 +0200
+++ new/test/test_ssl.rb 2016-08-16 04:30:22.000000000 +0200
@@ -80,6 +80,16 @@
assert(str.scan(/^hello$/)[0])
end
+ def test_verification_without_httpclient
+ raw_cert = "-----BEGIN
CERTIFICATE-----\nMIIDOTCCAiGgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBCMRMwEQYKCZImiZPyLGQB\nGRYDb3JnMRkwFwYKCZImiZPyLGQBGRYJcnVieS1sYW5nMRAwDgYDVQQDDAdSdWJ5\nIENBMB4XDTE2MDgxMDE3MjEzNFoXDTE3MDgxMDE3MjEzNFowSzETMBEGCgmSJomT\n8ixkARkWA29yZzEZMBcGCgmSJomT8ixkARkWCXJ1YnktbGFuZzEZMBcGA1UEAwwQ\nUnVieSBjZXJ0aWZpY2F0ZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB\nAJCfsSXpSMpmZCVa+ZCM+QDgomnhDlvnrGDq6pasTaIspGTXgws+7r8Dt/cNe6EH\nHJpRH2cGRiO4yPcfcT9eS4X7k8OC4f33wHfACOmLu6LeoNE8ujmSk6L6WzLUI+sE\nnLZbFrXxoAo4XHsm8vEG9C+jEoXZ1p+47wrAGaDwDQTnzlMy4dT9pRQEJP2G/Rry\nUkuZn8SUWmh3/YS78iaSzsNF1cgE1ealHOrPPFDjiCGDaH/LHyUPYlbFSLZ/B7Qx\nLxi5sePLcywWq/EJrmWpgeVTDjtNijsdKv/A3qkY+fm/oD0pzt7XsfJaP9YKNyJO\nQFdxWZeiPcDF+Hwf+IwSr+kCAwEAAaMxMC8wDgYDVR0PAQH/BAQDAgeAMB0GA1Ud\nDgQWBBQNvzYzJyXemGhxbA8NMXLolDnPyjANBgkqhkiG9w0BAQsFAAOCAQEARIJV\noKejGlOTn71QutnNnu07UtTu0IHs6YqjYzzND+m4JXLN+wvYm72AFUG0b1L7dRg0\niK8XjQrlNQNVqP1Mc6tffchy20neOPOHeiO6qTdRU8P2S8D3Uwe+1qhgxjfE+cWc\nwZmWxYK4HA8c58PxWMqrkr2QqXDplG9KWLvOgrtPGiLLZcQSKhvvB63QzItHBDU6\nRayiJY3oPkK/HrIvFlySqFqzWmuyknkciOFywEHQMz/tcSFJ2QFpPj/tBz9VXohH\nZ8KscmfhZrTPBjo+ky1lz/WraWoz4LMiLnkC2ABczWLRSawu+v3Irx1NFJngt05e\npqwtqIUeg7j+JLiTaA==\n-----END
CERTIFICATE-----"
+ raw_ca_cert = "-----BEGIN
CERTIFICATE-----\nMIIDYjCCAkqgAwIBAgIBATANBgkqhkiG9w0BAQsFADBCMRMwEQYKCZImiZPyLGQB\nGRYDb3JnMRkwFwYKCZImiZPyLGQBGRYJcnVieS1sYW5nMRAwDgYDVQQDDAdSdWJ5\nIENBMB4XDTE2MDgxMDE3MjA1NFoXDTE4MDgxMDE3MjA1NFowQjETMBEGCgmSJomT\n8ixkARkWA29yZzEZMBcGCgmSJomT8ixkARkWCXJ1YnktbGFuZzEQMA4GA1UEAwwH\nUnVieSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALKGwyM3Ejtl\npo7CqaDlS71gDZn3gm6IwWpmRMLJofSI9LCwAbjijSC2HvO0xUWoYW40FbzjnnEi\ngszsWyPwuQIx9t0bhuAyllNIfImmkaQkrikXKBKzia4jPnbc4iXPnfjuThjESFWl\ntfbN6y1B5TjKhD1KelfakUO+iMu8WlIA9NKQZYfJ/F3QSpP5Iqb3KN/jVifFbDV8\nbAl3Ln4rT2kTCKrZZcl1jmWsJv8jBw6+P7hk0/Mu0JeHAITsjbNbpHd8UXpCfbVs\nsNGZrBU4uJdZ2YTG+Y27/t25jFNQwb+TWbvig7rfdX2sjssuxa00BBxarC08tIVj\nZprM37KcNn8CAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC\nAQYwHQYDVR0OBBYEFA2/NjMnJd6YaHFsDw0xcuiUOc/KMB8GA1UdIwQYMBYEFA2/\nNjMnJd6YaHFsDw0xcuiUOc/KMA0GCSqGSIb3DQEBCwUAA4IBAQAJSOw49XqvUll0\n3vU9EAO6yUdeZSsQENIfYbRMQgapbnN1vTyrUjPZkGC5hIE1pVdoHtEoUEICxIwy\nr6BKxiSLBDLp+rvIuDdzMkXIWdUVvTZguVRyKtM2gfnpsPLpVnv+stBmAW2SMyxm\nkymhOpkjdv3He+45uorB3tdfBS9VVomDEUJdg38UE1b5eXRQ3D6gG0iCPFzKszXg\nLoAYhGxtjCJaKlbzduMK0YO6aelgW1+XnVIKcA7DJ9egk5d/dFZBPFfwumwr9hTH\nh7/fp3Fr87weI+CkfmFyJZrsEBlXJBVuvPesMVHTh3Whm5kmCdWcBJU0QmSq42ZL\n72U0PXLR\n-----END
CERTIFICATE-----"
+ ca_cert = ::OpenSSL::X509::Certificate.new(raw_ca_cert)
+ cert = ::OpenSSL::X509::Certificate.new(raw_cert)
+ store = ::OpenSSL::X509::Store.new
+ store.add_cert(ca_cert)
+ assert(store.verify(cert))
+ end
+
def test_verification
cfg = @client.ssl_config
cfg.verify_callback = method(:verify_callback).to_proc
@@ -217,18 +227,14 @@
end
end
- # SSL_CERT_FILE does not work with recent jruby-openssl.
- # You should not depend on SSL_CERT_FILE on JRuby
- if !defined?(JRUBY_VERSION)
- def test_set_default_paths
- assert_raise(OpenSSL::SSL::SSLError) do
- @client.get(@url)
- end
- escape_env do
- ENV['SSL_CERT_FILE'] = File.join(DIR, 'ca-chain.pem')
- @client.ssl_config.set_default_paths
- @client.get(@url)
- end
+ def test_set_default_paths
+ assert_raise(OpenSSL::SSL::SSLError) do
+ @client.get(@url)
+ end
+ escape_env do
+ ENV['SSL_CERT_FILE'] = File.join(DIR, 'ca-chain.pem')
+ @client.ssl_config.set_default_paths
+ @client.get(@url)
end
end