@@ -40,6 +40,51 @@ def test_private
40
40
#end
41
41
end
42
42
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
+
43
88
def test_oid
44
89
key = OpenSSL ::PKey ::RSA . new
45
90
assert_equal 'rsaEncryption' , key . oid
0 commit comments