@@ -20,13 +20,9 @@ def test_private
2020 key2 = OpenSSL ::PKey ::RSA . new ( key . to_der )
2121 assert_true ( key2 . private? )
2222
23- # public key
24- key3 = key . public_key
25- assert_false ( key3 . private? )
26-
2723 # Generated by public key DER
28- key4 = OpenSSL ::PKey ::RSA . new ( key3 . to_der )
29- assert_false ( key4 . private? )
24+ key3 = OpenSSL ::PKey ::RSA . new ( key . public_to_der )
25+ assert_false ( key3 . private? )
3026
3127 if !openssl? ( 3 , 0 , 0 )
3228 # Generated by RSA#set_key
@@ -290,11 +286,11 @@ def test_export
290286
291287 # key has only n, e and d
292288 key . set_key ( orig . n , orig . e , orig . d )
293- assert_equal orig . public_key . export , key . export
289+ assert_equal pub . export , key . export
294290
295291 # key has only n, e, d, p and q
296292 key . set_factors ( orig . p , orig . q )
297- assert_equal orig . public_key . export , key . export
293+ assert_equal pub . export , key . export
298294
299295 # key has n, e, d, p, q, dmp1, dmq1 and iqmp
300296 key . set_crt_params ( orig . dmp1 , orig . dmq1 , orig . iqmp )
@@ -315,11 +311,11 @@ def test_to_der
315311
316312 # key has only n, e and d
317313 key . set_key ( orig . n , orig . e , orig . d )
318- assert_equal orig . public_key . to_der , key . to_der
314+ assert_equal pub . to_der , key . to_der
319315
320316 # key has only n, e, d, p and q
321317 key . set_factors ( orig . p , orig . q )
322- assert_equal orig . public_key . to_der , key . to_der
318+ assert_equal pub . to_der , key . to_der
323319
324320 # key has n, e, d, p, q, dmp1, dmq1 and iqmp
325321 key . set_crt_params ( orig . dmp1 , orig . dmq1 , orig . iqmp )
@@ -548,6 +544,17 @@ def test_get_param
548544 assert_equal ( key . iqmp , key . get_param ( "rsa-coefficient1" ) )
549545 end
550546
547+ def test_public_key
548+ key = Fixtures . pkey ( "rsa-1" )
549+ pub = key . public_key
550+ assert_not_predicate ( pub , :private? )
551+ assert_predicate ( pub , :public? )
552+ assert_equal ( key . n , pub . n )
553+ assert_equal ( key . e , pub . e )
554+ assert_nil ( pub . d )
555+ assert_equal ( key . public_to_der , pub . to_der )
556+ end
557+
551558 def test_dup
552559 key = Fixtures . pkey ( "rsa-1" )
553560 key2 = key . dup
0 commit comments