Skip to content

Commit f4c86f3

Browse files
committed
[test] borrow some more RSA test from MRI's suite
1 parent a014686 commit f4c86f3

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

src/test/ruby/rsa/test_rsa.rb

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,51 @@ def test_private
4040
#end
4141
end
4242

43+
def test_dup
44+
key = Fixtures.pkey("rsa1024")
45+
key2 = key.dup
46+
assert_equal key.params, key2.params
47+
48+
# PKey is immutable in OpenSSL >= 3.0
49+
#if !openssl?(3, 0, 0)
50+
key2.set_key(key2.n, 3, key2.d)
51+
assert_not_equal key.params, key2.params
52+
#end
53+
end
54+
55+
def test_new
56+
key = OpenSSL::PKey::RSA.new(512)
57+
assert_equal 512, key.n.num_bits
58+
assert_equal 65537, key.e
59+
assert_not_nil key.d
60+
61+
# Specify public exponent
62+
key2 = OpenSSL::PKey::RSA.new(512, 3)
63+
assert_equal 512, key2.n.num_bits
64+
assert_equal 3, key2.e
65+
assert_not_nil key2.d
66+
end
67+
68+
def test_s_generate
69+
key1 = OpenSSL::PKey::RSA.generate(512)
70+
assert_equal 512, key1.n.num_bits
71+
assert_equal 65537, key1.e
72+
73+
# Specify public exponent
74+
key2 = OpenSSL::PKey::RSA.generate(512, 3)
75+
assert_equal 512, key2.n.num_bits
76+
assert_equal 3, key2.e
77+
assert_not_nil key2.d
78+
end
79+
80+
# TODO: not implemented properly
81+
# def test_new_break
82+
# assert_nil(OpenSSL::PKey::RSA.new(1024) { break })
83+
# assert_raise(RuntimeError) do
84+
# OpenSSL::PKey::RSA.new(1024) { raise }
85+
# end
86+
# end
87+
4388
def test_oid
4489
key = OpenSSL::PKey::RSA.new
4590
assert_equal 'rsaEncryption', key.oid

0 commit comments

Comments
 (0)