1require_relative 'utils'
2
3if defined?(OpenSSL)
4
5class OpenSSL::TestBN < Test::Unit::TestCase
6  def test_bn_to_bn
7    assert_equal(999.to_bn, OpenSSL::BN.new(999.to_bn))
8  end
9
10  def test_integer_to_bn
11    assert_equal(999.to_bn, OpenSSL::BN.new(999.to_s(16), 16))
12    assert_equal((2 ** 107 - 1).to_bn, OpenSSL::BN.new((2 ** 107 - 1).to_s(16), 16))
13  end
14
15  def test_prime_p
16    assert_equal(true, OpenSSL::BN.new((2 ** 107 - 1).to_s(16), 16).prime?)
17    assert_equal(true, OpenSSL::BN.new((2 ** 127 - 1).to_s(16), 16).prime?(1))
18  end
19
20  def test_cmp_nil
21    bn = OpenSSL::BN.new('1')
22    assert_equal(false, bn == nil)
23    assert_equal(true,  bn != nil)
24  end
25end
26
27end
28