aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-10-04 00:33:22 +0000
committernaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-10-04 00:33:22 +0000
commit3a633b812e3676d4a1c8f20426d0354be530e056 (patch)
tree21b121ac7036cf79c3d6b80a2e05343081051d26
parenteaa4e02d4507ad0658d95403a7a53b78ebb2ed53 (diff)
downloadruby-3a633b812e3676d4a1c8f20426d0354be530e056.tar.gz
* 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] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29407 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog6
-rw-r--r--ext/openssl/lib/openssl/bn.rb2
-rw-r--r--test/openssl/test_bn.rb5
3 files changed, 12 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index d1e7d0f0e2..b037b27a64 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Mon Oct 4 09:30:42 2010 NARUSE, Yui <naruse@ruby-lang.org>
+
+ * 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@ruby-lang.org>
* cont.c (fiber_memsize): Return size.
diff --git a/ext/openssl/lib/openssl/bn.rb b/ext/openssl/lib/openssl/bn.rb
index e7cbf2cfaf..624c13715c 100644
--- a/ext/openssl/lib/openssl/bn.rb
+++ b/ext/openssl/lib/openssl/bn.rb
@@ -29,7 +29,7 @@ end # OpenSSL
#
class Integer
def to_bn
- OpenSSL::BN::new(self)
+ OpenSSL::BN::new(self.to_s(16), 16)
end
end # Integer
diff --git a/test/openssl/test_bn.rb b/test/openssl/test_bn.rb
index da77a556b0..d913d0c953 100644
--- a/test/openssl/test_bn.rb
+++ b/test/openssl/test_bn.rb
@@ -8,6 +8,11 @@ require "test/unit"
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)