* 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
This commit is contained in:
naruse 2010-10-04 00:33:22 +00:00
Родитель eaa4e02d45
Коммит 3a633b812e
3 изменённых файлов: 12 добавлений и 1 удалений

Просмотреть файл

@ -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.

Просмотреть файл

@ -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

Просмотреть файл

@ -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)