[前][次][番号順一覧][スレッド一覧]

ruby-changes:31402

From: nagachika <ko1@a...>
Date: Thu, 31 Oct 2013 22:42:06 +0900 (JST)
Subject: [ruby-changes:31402] nagachika:r43481 (ruby_2_0_0): merge revision(s) 41808, 41829: [Backport #8384] [Backport #9065]

nagachika	2013-10-31 22:41:58 +0900 (Thu, 31 Oct 2013)

  New Revision: 43481

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=43481

  Log:
    merge revision(s) 41808,41829: [Backport #8384] [Backport #9065]
    
    * ext/openssl/ossl_pkey_ec.c: Ensure compatibility to builds of
      OpenSSL with OPENSSL_NO_EC2M defined, but OPENSSL_NO_EC not
      defined.
    
    * test/openssl/test_pkey_ec.rb: Iterate over built-in curves
      (and assert their non-emptiness!) instead of hard-coding them, as
      this may cause problems with respect to the different availability
      of individual curves in individual OpenSSL builds.
      [ruby-core:54881] [Bug #8384]
      Thanks to Vit Ondruch for providing the patch!
    
    * test/openssl/test_pkey_ec.rb: Skip tests for "Oakley" curves as
      they are not suitable for ECDSA.
      [ruby-core:54881] [Bug #8384]

  Modified directories:
    branches/ruby_2_0_0/
  Modified files:
    branches/ruby_2_0_0/ChangeLog
    branches/ruby_2_0_0/ext/openssl/ossl_pkey_ec.c
    branches/ruby_2_0_0/test/openssl/test_pkey_ec.rb
    branches/ruby_2_0_0/version.h
Index: ruby_2_0_0/ChangeLog
===================================================================
--- ruby_2_0_0/ChangeLog	(revision 43480)
+++ ruby_2_0_0/ChangeLog	(revision 43481)
@@ -1,3 +1,22 @@ https://github.com/ruby/ruby/blob/trunk/ruby_2_0_0/ChangeLog#L1
+Thu Oct 31 22:28:04 2013  Martin Bosslet  <Martin.Bosslet@g...>
+
+	* test/openssl/test_pkey_ec.rb: Skip tests for "Oakley" curves as
+	  they are not suitable for ECDSA.
+	  [ruby-core:54881] [Bug #8384]
+
+Thu Oct 31 22:28:04 2013  Martin Bosslet  <Martin.Bosslet@g...>
+
+	* ext/openssl/ossl_pkey_ec.c: Ensure compatibility to builds of
+	  OpenSSL with OPENSSL_NO_EC2M defined, but OPENSSL_NO_EC not
+	  defined.
+	* test/openssl/test_pkey_ec.rb: Iterate over built-in curves
+	  (and assert their non-emptiness!) instead of hard-coding them, as
+	  this may cause problems with respect to the different availability
+	  of individual curves in individual OpenSSL builds.
+	  [ruby-core:54881] [Bug #8384]
+
+	  Thanks to Vit Ondruch for providing the patch!
+
 Sun Oct 27 01:04:28 2013  CHIKANAGA Tomoyuki  <nagachika@r...>
 
 	* lib/rubygems: Update to RubyGems 2.0.13. [ruby-core:58031]
Index: ruby_2_0_0/ext/openssl/ossl_pkey_ec.c
===================================================================
--- ruby_2_0_0/ext/openssl/ossl_pkey_ec.c	(revision 43480)
+++ ruby_2_0_0/ext/openssl/ossl_pkey_ec.c	(revision 43481)
@@ -762,8 +762,10 @@ static VALUE ossl_ec_group_initialize(in https://github.com/ruby/ruby/blob/trunk/ruby_2_0_0/ext/openssl/ossl_pkey_ec.c#L762
                 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(in https://github.com/ruby/ruby/blob/trunk/ruby_2_0_0/ext/openssl/ossl_pkey_ec.c#L819
 
             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");
             }
Index: ruby_2_0_0/version.h
===================================================================
--- ruby_2_0_0/version.h	(revision 43480)
+++ ruby_2_0_0/version.h	(revision 43481)
@@ -1,10 +1,10 @@ https://github.com/ruby/ruby/blob/trunk/ruby_2_0_0/version.h#L1
 #define RUBY_VERSION "2.0.0"
-#define RUBY_RELEASE_DATE "2013-10-27"
-#define RUBY_PATCHLEVEL 342
+#define RUBY_RELEASE_DATE "2013-10-31"
+#define RUBY_PATCHLEVEL 343
 
 #define RUBY_RELEASE_YEAR 2013
 #define RUBY_RELEASE_MONTH 10
-#define RUBY_RELEASE_DAY 27
+#define RUBY_RELEASE_DAY 31
 
 #include "ruby/version.h"
 
Index: ruby_2_0_0/test/openssl/test_pkey_ec.rb
===================================================================
--- ruby_2_0_0/test/openssl/test_pkey_ec.rb	(revision 43480)
+++ ruby_2_0_0/test/openssl/test_pkey_ec.rb	(revision 43481)
@@ -7,28 +7,29 @@ class OpenSSL::TestEC < Test::Unit::Test https://github.com/ruby/ruby/blob/trunk/ruby_2_0_0/test/openssl/test_pkey_ec.rb#L7
     @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')
-
-    @key1 = OpenSSL::PKey::EC.new
-    @key1.group = @group1
-    @key1.generate_key
+    @groups = []
+    @keys = []
 
-    @key2 = OpenSSL::PKey::EC.new(@group2.curve_name)
-    @key2.generate_key
+    OpenSSL::PKey::EC.builtin_curves.each do |curve, comment|
+      next if curve.start_with?("Oakley") # Oakley curves are not suitable for ECDSA
+      group = OpenSSL::PKey::EC::Group.new(curve)
 
-    @key3 = OpenSSL::PKey::EC.new(@group3)
-    @key3.generate_key
+      key = OpenSSL::PKey::EC.new(group)
+      key.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]
@@ -44,11 +45,12 @@ class OpenSSL::TestEC < Test::Unit::Test https://github.com/ruby/ruby/blob/trunk/ruby_2_0_0/test/openssl/test_pkey_ec.rb#L45
     end
   end
 
-  def test_encoding
+  def test_group_encoding
     for group in @groups
       for meth in [:to_der, :to_pem]
         txt = group.send(meth)
         gr = OpenSSL::PKey::EC::Group.new(txt)
+
         assert_equal(txt, gr.send(meth))
 
         assert_equal(group.generator.to_bn, gr.generator.to_bn)
@@ -58,7 +60,9 @@ class OpenSSL::TestEC < Test::Unit::Test https://github.com/ruby/ruby/blob/trunk/ruby_2_0_0/test/openssl/test_pkey_ec.rb#L60
         assert_equal(group.degree, gr.degree)
       end
     end
+  end
 
+  def test_key_encoding
     for key in @keys
       group = key.group
 

Property changes on: ruby_2_0_0
___________________________________________________________________
Modified: svn:mergeinfo
   Merged /trunk:r41808,41829


--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]