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

ruby-changes:17402

From: naruse <ko1@a...>
Date: Mon, 4 Oct 2010 09:33:29 +0900 (JST)
Subject: [ruby-changes:17402] Ruby:r29407 (trunk): * ext/openssl/lib/openssl/bn.rb (Integer#to_bn): OpenSSL::BN.new

naruse	2010-10-04 09:33:22 +0900 (Mon, 04 Oct 2010)

  New Revision: 29407

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

  Log:
    * ext/openssl/lib/openssl/bn.rb (Integer#to_bn): OpenSSL::BN.new
      accepts only Strings, so call Integer#to_s(16).
      16 is for an optimization. [ruby-dev:42336]

  Modified files:
    trunk/ChangeLog
    trunk/ext/openssl/lib/openssl/bn.rb
    trunk/test/openssl/test_bn.rb

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 29406)
+++ ChangeLog	(revision 29407)
@@ -1,3 +1,9 @@
+Mon Oct  4 09:30:42 2010  NARUSE, Yui  <naruse@r...>
+
+	* ext/openssl/lib/openssl/bn.rb (Integer#to_bn): OpenSSL::BN.new
+	  accepts only Strings, so call Integer#to_s(16).
+	  16 is for an optimization. [ruby-dev:42336]
+
 Mon Oct  4 07:57:51 2010  NARUSE, Yui  <naruse@r...>
 
 	* cont.c (fiber_memsize): Return size.
Index: ext/openssl/lib/openssl/bn.rb
===================================================================
--- ext/openssl/lib/openssl/bn.rb	(revision 29406)
+++ ext/openssl/lib/openssl/bn.rb	(revision 29407)
@@ -29,7 +29,7 @@
 #
 class Integer
   def to_bn
-    OpenSSL::BN::new(self)
+    OpenSSL::BN::new(self.to_s(16), 16)
   end
 end # Integer
 
Index: test/openssl/test_bn.rb
===================================================================
--- test/openssl/test_bn.rb	(revision 29406)
+++ test/openssl/test_bn.rb	(revision 29407)
@@ -8,6 +8,11 @@
 if defined?(OpenSSL)
 
 class OpenSSL::TestBN < Test::Unit::TestCase
+  def test_integer_to_bn
+    assert_equal(999.to_bn, OpenSSL::BN.new(999.to_s(16), 16))
+    assert_equal((2 ** 107 - 1).to_bn, OpenSSL::BN.new((2 ** 107 - 1).to_s(16), 16))
+  end
+
   def test_prime_p
     OpenSSL::BN.new((2 ** 107 - 1).to_s(16), 16).prime?
     OpenSSL::BN.new((2 ** 127 - 1).to_s(16), 16).prime?(1)

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

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