@@ -351,7 +351,7 @@ fn import_same_identity_multiple_times() {
351
351
) ) ;
352
352
353
353
let cert = keys. server . cert_and_key . cert . to_pem ( ) . into_bytes ( ) ;
354
- let key = key_to_pem ( keys. server . cert_and_key . key . get_der ( ) ) . into_bytes ( ) ;
354
+ let key = rsa_to_pkcs8 ( & key_to_pem ( keys. server . cert_and_key . key . get_der ( ) ) ) . into_bytes ( ) ;
355
355
let _ = p ! ( Identity :: from_pkcs8( & cert, & key) ) ;
356
356
let _ = p ! ( Identity :: from_pkcs8( & cert, & key) ) ;
357
357
}
@@ -429,7 +429,7 @@ fn alpn_google_none() {
429
429
fn server_pkcs8 ( ) {
430
430
let keys = test_cert_gen:: keys ( ) ;
431
431
let cert = keys. server . cert_and_key . cert . to_pem ( ) . into_bytes ( ) ;
432
- let key = key_to_pem ( keys. server . cert_and_key . key . get_der ( ) ) . into_bytes ( ) ;
432
+ let key = rsa_to_pkcs8 ( & key_to_pem ( keys. server . cert_and_key . key . get_der ( ) ) ) . into_bytes ( ) ;
433
433
434
434
let ident = Identity :: from_pkcs8 ( & cert, & key) . unwrap ( ) ;
435
435
let ident2 = ident. clone ( ) ;
@@ -476,7 +476,7 @@ fn server_pkcs8() {
476
476
fn two_servers ( ) {
477
477
let keys1 = test_cert_gen:: gen_keys ( ) ;
478
478
let cert = keys1. server . cert_and_key . cert . to_pem ( ) . into_bytes ( ) ;
479
- let key = key_to_pem ( keys1. server . cert_and_key . key . get_der ( ) ) . into_bytes ( ) ;
479
+ let key = rsa_to_pkcs8 ( & key_to_pem ( keys1. server . cert_and_key . key . get_der ( ) ) ) . into_bytes ( ) ;
480
480
let identity = p ! ( Identity :: from_pkcs8( & cert, & key) ) ;
481
481
let builder = TlsAcceptor :: builder ( identity) ;
482
482
let builder = p ! ( builder. build( ) ) ;
@@ -497,7 +497,7 @@ fn two_servers() {
497
497
498
498
let keys2 = test_cert_gen:: gen_keys ( ) ;
499
499
let cert = keys2. server . cert_and_key . cert . to_pem ( ) . into_bytes ( ) ;
500
- let key = key_to_pem ( keys2. server . cert_and_key . key . get_der ( ) ) . into_bytes ( ) ;
500
+ let key = rsa_to_pkcs8 ( & key_to_pem ( keys2. server . cert_and_key . key . get_der ( ) ) ) . into_bytes ( ) ;
501
501
let identity = p ! ( Identity :: from_pkcs8( & cert, & key) ) ;
502
502
let builder = TlsAcceptor :: builder ( identity) ;
503
503
let builder = p ! ( builder. build( ) ) ;
@@ -552,3 +552,11 @@ fn key_to_pem(der: &[u8]) -> String {
552
552
contents : der. to_owned ( ) ,
553
553
} )
554
554
}
555
+
556
+ fn rsa_to_pkcs8 ( pem : & str ) -> String {
557
+ use rsa:: { pkcs1:: FromRsaPrivateKey , pkcs8:: ToPrivateKey , RsaPrivateKey } ;
558
+ let pkey = RsaPrivateKey :: from_pkcs1_pem ( pem) . unwrap ( ) ;
559
+ let pkcs8_pem = pkey. to_pkcs8_pem ( ) . unwrap ( ) ;
560
+ let pkcs8_pem: & str = pkcs8_pem. as_ref ( ) ;
561
+ pkcs8_pem. to_owned ( )
562
+ }
0 commit comments