summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrhe <rhe@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-01-31 10:08:22 +0000
committerrhe <rhe@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-01-31 10:08:22 +0000
commit8795838fcb4680236fbf7e6130eab9f2097f388f (patch)
tree4c54c5821e9119ac8120a1665542069884562211
parentb8afbf5e6db4c6ea29f14c8903174f6c6062a4a9 (diff)
openssl: import v2.0.3
Import Ruby/OpenSSL 2.0.3. Only bugfixes. The full commit log since 2.0.2 (imported at r57146) can be found at: https://github.com/ruby/openssl/compare/v2.0.2...v2.0.3 ---------------------------------------------------------------- Corey Bonnell (1): Fix for ASN1::Constructive 'each' implementation Kazuki Yamaguchi (10): Fix build with static OpenSSL libraries on Windows ([ruby-core:78878] [Bug #13080]) Merge pull request #96 from CBonnell/master Merge branch 'topic/windows-static-linking-without-pkg-config' into maint appveyor.yml: update OpenSSL version to 1.0.2j buffering: fix typo in doc test/envutil: fix assert_raise_with_message x509: fix OpenSSL::X509::Name#eql? ([ruby-core:79310] [Bug #13170]) ruby-openssl-docker: update versions of Ruby and OpenSSL .travis.yml: test with Ruby 2.4 Ruby/OpenSSL 2.0.3 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57482 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ext/openssl/extconf.rb6
-rw-r--r--ext/openssl/lib/openssl/buffering.rb4
-rw-r--r--ext/openssl/openssl.gemspec8
-rw-r--r--ext/openssl/ossl_asn1.c2
-rw-r--r--ext/openssl/ossl_version.h2
-rw-r--r--ext/openssl/ossl_x509name.c2
-rw-r--r--test/openssl/test_asn1.rb7
-rw-r--r--test/openssl/test_x509name.rb10
8 files changed, 32 insertions, 9 deletions
diff --git a/ext/openssl/extconf.rb b/ext/openssl/extconf.rb
index 7033b0e20d..60bd518e16 100644
--- a/ext/openssl/extconf.rb
+++ b/ext/openssl/extconf.rb
@@ -37,6 +37,12 @@ have_library("socket", "socket")
Logging::message "=== Checking for required stuff... ===\n"
result = pkg_config("openssl") && have_header("openssl/ssl.h")
unless result
+ if $mswin || $mingw
+ # required for static OpenSSL libraries
+ have_library("gdi32") # OpenSSL <= 1.0.2 (for RAND_screen())
+ have_library("crypt32")
+ end
+
result = have_header("openssl/ssl.h")
result &&= %w[crypto libeay32].any? {|lib| have_library(lib, "CRYPTO_malloc")}
result &&= %w[ssl ssleay32].any? {|lib| have_library(lib, "SSL_new")}
diff --git a/ext/openssl/lib/openssl/buffering.rb b/ext/openssl/lib/openssl/buffering.rb
index 7fd647caad..b0dffefd3e 100644
--- a/ext/openssl/lib/openssl/buffering.rb
+++ b/ext/openssl/lib/openssl/buffering.rb
@@ -189,7 +189,7 @@ module OpenSSL::Buffering
end
##
- # Reads the next "line+ from the stream. Lines are separated by +eol+. If
+ # Reads the next "line" from the stream. Lines are separated by +eol+. If
# +limit+ is provided the result will not be longer than the given number of
# bytes.
#
@@ -344,7 +344,7 @@ module OpenSSL::Buffering
end
##
- # Writes +str+ in the non-blocking manner.
+ # Writes +s+ in the non-blocking manner.
#
# If there is buffered data, it is flushed first. This may block.
#
diff --git a/ext/openssl/openssl.gemspec b/ext/openssl/openssl.gemspec
index b5ad826e82..35cf7128af 100644
--- a/ext/openssl/openssl.gemspec
+++ b/ext/openssl/openssl.gemspec
@@ -1,15 +1,15 @@
# -*- encoding: utf-8 -*-
-# stub: openssl 2.0.2 ruby lib
+# stub: openssl 2.0.3 ruby lib
# stub: ext/openssl/extconf.rb
Gem::Specification.new do |s|
s.name = "openssl".freeze
- s.version = "2.0.2"
+ s.version = "2.0.3"
s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
s.require_paths = ["lib".freeze]
s.authors = ["Martin Bosslet".freeze, "SHIBATA Hiroshi".freeze, "Zachary Scott".freeze, "Kazuki Yamaguchi".freeze]
- s.date = "2016-12-22"
+ s.date = "2017-01-31"
s.description = "It wraps the OpenSSL library.".freeze
s.email = ["ruby-core@ruby-lang.org".freeze]
s.extensions = ["ext/openssl/extconf.rb".freeze]
@@ -19,7 +19,7 @@ Gem::Specification.new do |s|
s.licenses = ["Ruby".freeze]
s.rdoc_options = ["--main".freeze, "README.md".freeze]
s.required_ruby_version = Gem::Requirement.new(">= 2.3.0".freeze)
- s.rubygems_version = "2.6.8".freeze
+ s.rubygems_version = "2.6.10".freeze
s.summary = "OpenSSL provides SSL, TLS and general purpose cryptography.".freeze
if s.respond_to? :specification_version then
diff --git a/ext/openssl/ossl_asn1.c b/ext/openssl/ossl_asn1.c
index 534796f52a..1d3ee4ac18 100644
--- a/ext/openssl/ossl_asn1.c
+++ b/ext/openssl/ossl_asn1.c
@@ -1291,7 +1291,7 @@ ossl_asn1cons_to_der(VALUE self)
static VALUE
ossl_asn1cons_each(VALUE self)
{
- rb_funcall(ossl_asn1_get_value(self), id_each, 0);
+ rb_block_call(ossl_asn1_get_value(self), id_each, 0, 0, 0, 0);
return self;
}
diff --git a/ext/openssl/ossl_version.h b/ext/openssl/ossl_version.h
index d1bd7bc4bb..b98533f48b 100644
--- a/ext/openssl/ossl_version.h
+++ b/ext/openssl/ossl_version.h
@@ -10,6 +10,6 @@
#if !defined(_OSSL_VERSION_H_)
#define _OSSL_VERSION_H_
-#define OSSL_VERSION "2.0.2"
+#define OSSL_VERSION "2.0.3"
#endif /* _OSSL_VERSION_H_ */
diff --git a/ext/openssl/ossl_x509name.c b/ext/openssl/ossl_x509name.c
index 4523e0d71e..ac98c1b94c 100644
--- a/ext/openssl/ossl_x509name.c
+++ b/ext/openssl/ossl_x509name.c
@@ -375,7 +375,7 @@ ossl_x509name_eql(VALUE self, VALUE other)
if (!rb_obj_is_kind_of(other, cX509Name))
return Qfalse;
- return ossl_x509name_cmp0(self, other) ? Qtrue : Qfalse;
+ return ossl_x509name_cmp0(self, other) == 0 ? Qtrue : Qfalse;
}
/*
diff --git a/test/openssl/test_asn1.rb b/test/openssl/test_asn1.rb
index a0ac1ddbf5..91ae2cfd0c 100644
--- a/test/openssl/test_asn1.rb
+++ b/test/openssl/test_asn1.rb
@@ -566,6 +566,13 @@ rEzBQ0F9dUyqQ9gyRg8KHhDfv9HzT1d/rnUZMkoombwYBRIUChGCYV0GnJcan2Zm
assert_equal 17, ret[0][6]
end
+ def test_constructive_each
+ data = [OpenSSL::ASN1::Integer.new(0), OpenSSL::ASN1::Integer.new(1)]
+ seq = OpenSSL::ASN1::Sequence.new data
+
+ assert_equal data, seq.entries
+ end
+
private
def assert_universal(tag, asn1)
diff --git a/test/openssl/test_x509name.rb b/test/openssl/test_x509name.rb
index b30a02e64a..60e8ddb8ac 100644
--- a/test/openssl/test_x509name.rb
+++ b/test/openssl/test_x509name.rb
@@ -357,6 +357,16 @@ class OpenSSL::TestX509Name < OpenSSL::TestCase
assert_equal(expected, name_hash(name))
end
+ def test_equality
+ name0 = OpenSSL::X509::Name.new([["DC", "org"], ["DC", "ruby-lang"], ["CN", "bar.ruby-lang.org"]])
+ name1 = OpenSSL::X509::Name.new([["DC", "org"], ["DC", "ruby-lang"], ["CN", "bar.ruby-lang.org"]])
+ name2 = OpenSSL::X509::Name.new([["DC", "org"], ["DC", "ruby-lang"], ["CN", "baz.ruby-lang.org"]])
+ assert_equal true, name0 == name1
+ assert_equal true, name0.eql?(name1)
+ assert_equal false, name0 == name2
+ assert_equal false, name0.eql?(name2)
+ end
+
def test_dup
name = OpenSSL::X509::Name.parse("/CN=ruby-lang.org")
assert_equal(name.to_der, name.dup.to_der)