Fix build against OpenSSL with enabled ECC curves.
This commit is contained in:
parent
486dd7a45b
commit
1ae6ae5b62
@ -0,0 +1,85 @@
|
|||||||
|
From 5617aafa2d44d0a4bc811830e225463abd01b2b2 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?V=C3=ADt=20Ondruch?= <vondruch@redhat.com>
|
||||||
|
Date: Tue, 21 May 2013 10:01:33 +0200
|
||||||
|
Subject: [PATCH] Fix build against OpenSSL with enabled ECC curves.
|
||||||
|
|
||||||
|
---
|
||||||
|
ext/openssl/ossl_pkey_ec.c | 4 ++++
|
||||||
|
test/openssl/test_pkey_ec.rb | 26 +++++++++++++-------------
|
||||||
|
2 files changed, 17 insertions(+), 13 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/ext/openssl/ossl_pkey_ec.c b/ext/openssl/ossl_pkey_ec.c
|
||||||
|
index 8e6d88f..29e28ca 100644
|
||||||
|
--- a/ext/openssl/ossl_pkey_ec.c
|
||||||
|
+++ b/ext/openssl/ossl_pkey_ec.c
|
||||||
|
@@ -762,8 +762,10 @@ static VALUE ossl_ec_group_initialize(int argc, VALUE *argv, VALUE self)
|
||||||
|
method = EC_GFp_mont_method();
|
||||||
|
} else if (id == s_GFp_nist) {
|
||||||
|
method = EC_GFp_nist_method();
|
||||||
|
+#if !defined(OPENSSL_NO_EC2M)
|
||||||
|
} else if (id == s_GF2m_simple) {
|
||||||
|
method = EC_GF2m_simple_method();
|
||||||
|
+#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
if (method) {
|
||||||
|
@@ -817,8 +819,10 @@ static VALUE ossl_ec_group_initialize(int argc, VALUE *argv, VALUE self)
|
||||||
|
|
||||||
|
if (id == s_GFp) {
|
||||||
|
new_curve = EC_GROUP_new_curve_GFp;
|
||||||
|
+#if !defined(OPENSSL_NO_EC2M)
|
||||||
|
} else if (id == s_GF2m) {
|
||||||
|
new_curve = EC_GROUP_new_curve_GF2m;
|
||||||
|
+#endif
|
||||||
|
} else {
|
||||||
|
ossl_raise(rb_eArgError, "unknown symbol, must be :GFp or :GF2m");
|
||||||
|
}
|
||||||
|
diff --git a/test/openssl/test_pkey_ec.rb b/test/openssl/test_pkey_ec.rb
|
||||||
|
index f151335..56f3ff7 100644
|
||||||
|
--- a/test/openssl/test_pkey_ec.rb
|
||||||
|
+++ b/test/openssl/test_pkey_ec.rb
|
||||||
|
@@ -7,28 +7,28 @@ class OpenSSL::TestEC < Test::Unit::TestCase
|
||||||
|
@data1 = 'foo'
|
||||||
|
@data2 = 'bar' * 1000 # data too long for DSA sig
|
||||||
|
|
||||||
|
- @group1 = OpenSSL::PKey::EC::Group.new('secp112r1')
|
||||||
|
- @group2 = OpenSSL::PKey::EC::Group.new('sect163k1')
|
||||||
|
- @group3 = OpenSSL::PKey::EC::Group.new('prime256v1')
|
||||||
|
+ @groups = []
|
||||||
|
+ @keys = []
|
||||||
|
|
||||||
|
- @key1 = OpenSSL::PKey::EC.new
|
||||||
|
- @key1.group = @group1
|
||||||
|
- @key1.generate_key
|
||||||
|
+ OpenSSL::PKey::EC.builtin_curves.each do |curve, comment|
|
||||||
|
+ group = OpenSSL::PKey::EC::Group.new(curve)
|
||||||
|
|
||||||
|
- @key2 = OpenSSL::PKey::EC.new(@group2.curve_name)
|
||||||
|
- @key2.generate_key
|
||||||
|
+ key = OpenSSL::PKey::EC.new(group)
|
||||||
|
+ key.generate_key
|
||||||
|
|
||||||
|
- @key3 = OpenSSL::PKey::EC.new(@group3)
|
||||||
|
- @key3.generate_key
|
||||||
|
-
|
||||||
|
- @groups = [@group1, @group2, @group3]
|
||||||
|
- @keys = [@key1, @key2, @key3]
|
||||||
|
+ @groups << group
|
||||||
|
+ @keys << key
|
||||||
|
+ end
|
||||||
|
end
|
||||||
|
|
||||||
|
def compare_keys(k1, k2)
|
||||||
|
assert_equal(k1.to_pem, k2.to_pem)
|
||||||
|
end
|
||||||
|
|
||||||
|
+ def test_builtin_curves
|
||||||
|
+ assert(!OpenSSL::PKey::EC.builtin_curves.empty?)
|
||||||
|
+ end
|
||||||
|
+
|
||||||
|
def test_curve_names
|
||||||
|
@groups.each_with_index do |group, idx|
|
||||||
|
key = @keys[idx]
|
||||||
|
--
|
||||||
|
1.8.2.1
|
||||||
|
|
@ -135,6 +135,11 @@ Patch13: rubygems-2.0.0-Do-not-modify-global-Specification.dirs-during-insta.pat
|
|||||||
# This prevents issues, when ruby configuration specifies --with-ruby-version=''.
|
# This prevents issues, when ruby configuration specifies --with-ruby-version=''.
|
||||||
# https://github.com/rubygems/rubygems/pull/455
|
# https://github.com/rubygems/rubygems/pull/455
|
||||||
Patch14: rubygems-2.0.0-Fixes-for-empty-ruby-version.patch
|
Patch14: rubygems-2.0.0-Fixes-for-empty-ruby-version.patch
|
||||||
|
# Although this does not directly affects Fedora ATM, it might be issue when
|
||||||
|
# rebuilding package on different platform (RHEL7). Please keep the patch until
|
||||||
|
# it is resolved in upstream.
|
||||||
|
# https://bugs.ruby-lang.org/issues/8384
|
||||||
|
Patch15: ruby-2.0.0-p195-Fix-build-against-OpenSSL-with-enabled-ECC-curves.patch
|
||||||
|
|
||||||
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
|
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
|
||||||
Requires: ruby(rubygems) >= %{rubygems_version}
|
Requires: ruby(rubygems) >= %{rubygems_version}
|
||||||
@ -398,6 +403,7 @@ Tcl/Tk interface for the object-oriented scripting language Ruby.
|
|||||||
%patch12 -p1
|
%patch12 -p1
|
||||||
%patch13 -p1
|
%patch13 -p1
|
||||||
%patch14 -p1
|
%patch14 -p1
|
||||||
|
%patch15 -p1
|
||||||
|
|
||||||
# Provide an example of usage of the tapset:
|
# Provide an example of usage of the tapset:
|
||||||
cp -a %{SOURCE3} .
|
cp -a %{SOURCE3} .
|
||||||
@ -844,6 +850,7 @@ make check TESTS="-v $DISABLE_TESTS"
|
|||||||
* Fri May 17 2013 Vít Ondruch <vondruch@redhat.com> - 2.0.0.195-8
|
* Fri May 17 2013 Vít Ondruch <vondruch@redhat.com> - 2.0.0.195-8
|
||||||
- Update to Ruby 2.0.0-p195 (rhbz#917374).
|
- Update to Ruby 2.0.0-p195 (rhbz#917374).
|
||||||
- Fix object taint bypassing in DL and Fiddle (CVE-2013-2065).
|
- Fix object taint bypassing in DL and Fiddle (CVE-2013-2065).
|
||||||
|
- Fix build against OpenSSL with enabled ECC curves.
|
||||||
|
|
||||||
* Fri Apr 19 2013 Vít Ondruch <vondruch@redhat.com> - 2.0.0.0-7
|
* Fri Apr 19 2013 Vít Ondruch <vondruch@redhat.com> - 2.0.0.0-7
|
||||||
- Macro definition moved into macros.ruby and macros.rubygems files.
|
- Macro definition moved into macros.ruby and macros.rubygems files.
|
||||||
|
Loading…
Reference in New Issue
Block a user