@@ -426,6 +426,64 @@ static int test_protected_RSA_PSS_via_legacy_PEM(void)
426
426
NULL , 1 );
427
427
}
428
428
429
+ static int check_public_DER (int type , const void * data , size_t data_len )
430
+ {
431
+ const unsigned char * datap = data ;
432
+ EVP_PKEY * pkey = d2i_PUBKEY (NULL , & datap , data_len );
433
+ int ok = (TEST_ptr (pkey ) && TEST_true (EVP_PKEY_is_a (pkey , "RSA" )));
434
+
435
+ EVP_PKEY_free (pkey );
436
+ return ok ;
437
+ }
438
+
439
+ static int test_public_RSA_via_DER (void )
440
+ {
441
+ return test_serialize_deserialize ("RSA" , NULL , NULL ,
442
+ serialize_EVP_PKEY_prov ,
443
+ deserialize_EVP_PKEY_prov ,
444
+ check_public_DER , dump_der ,
445
+ OSSL_SERIALIZER_PUBKEY_TO_DER_PQ ,
446
+ 0 );
447
+ }
448
+
449
+ static int test_public_RSA_PSS_via_DER (void )
450
+ {
451
+ return test_serialize_deserialize ("RSA-PSS" , NULL , NULL ,
452
+ serialize_EVP_PKEY_prov ,
453
+ deserialize_EVP_PKEY_prov ,
454
+ check_public_DER , dump_der ,
455
+ OSSL_SERIALIZER_PUBKEY_TO_DER_PQ ,
456
+ 0 );
457
+ }
458
+
459
+ static int check_public_PEM (int type , const void * data , size_t data_len )
460
+ {
461
+ static const char pem_header [] = "-----BEGIN " PEM_STRING_PUBLIC "-----" ;
462
+
463
+ return
464
+ TEST_strn_eq (data , pem_header , sizeof (pem_header ) - 1 );
465
+ }
466
+
467
+ static int test_public_RSA_via_PEM (void )
468
+ {
469
+ return test_serialize_deserialize ("RSA" , NULL , NULL ,
470
+ serialize_EVP_PKEY_prov ,
471
+ deserialize_EVP_PKEY_prov ,
472
+ check_public_PEM , dump_pem ,
473
+ OSSL_SERIALIZER_PUBKEY_TO_PEM_PQ ,
474
+ 0 );
475
+ }
476
+
477
+ static int test_public_RSA_PSS_via_PEM (void )
478
+ {
479
+ return test_serialize_deserialize ("RSA-PSS" , NULL , NULL ,
480
+ serialize_EVP_PKEY_prov ,
481
+ deserialize_EVP_PKEY_prov ,
482
+ check_public_PEM , dump_pem ,
483
+ OSSL_SERIALIZER_PUBKEY_TO_PEM_PQ ,
484
+ 0 );
485
+ }
486
+
429
487
int setup_tests (void )
430
488
{
431
489
TEST_info ("Generating keys..." );
@@ -447,12 +505,16 @@ int setup_tests(void)
447
505
ADD_TEST (test_protected_RSA_via_DER );
448
506
ADD_TEST (test_protected_RSA_via_PEM );
449
507
ADD_TEST (test_protected_RSA_via_legacy_PEM );
508
+ ADD_TEST (test_public_RSA_via_DER );
509
+ ADD_TEST (test_public_RSA_via_PEM );
450
510
ADD_TEST (test_unprotected_RSA_PSS_via_DER );
451
511
ADD_TEST (test_unprotected_RSA_PSS_via_PEM );
452
512
ADD_TEST (test_unprotected_RSA_PSS_via_legacy_PEM );
453
513
ADD_TEST (test_protected_RSA_PSS_via_DER );
454
514
ADD_TEST (test_protected_RSA_PSS_via_PEM );
455
515
ADD_TEST (test_protected_RSA_PSS_via_legacy_PEM );
516
+ ADD_TEST (test_public_RSA_PSS_via_DER );
517
+ ADD_TEST (test_public_RSA_PSS_via_PEM );
456
518
457
519
return 1 ;
458
520
}
0 commit comments