diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | ext/openssl/lib/openssl/bn.rb | 2 | ||||
-rw-r--r-- | test/openssl/test_bn.rb | 5 |
3 files changed, 12 insertions, 1 deletions
@@ -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) |