11use crate :: run_command;
2- use rcgen:: { BasicConstraints , Certificate , CertificateParams , DnType , IsCa , KeyPair , SanType } ;
2+ use rcgen:: {
3+ BasicConstraints , Certificate , CertificateParams , DnType , IsCa , Issuer , KeyPair , SanType ,
4+ } ;
35use std:: path:: Path ;
46
57pub fn generate_test_certs ( path : & Path ) {
@@ -32,16 +34,16 @@ pub fn generate_test_certs_with_bad_san(path: &Path) {
3234}
3335
3436pub fn generate_test_certs_with_sans ( path : & Path , sans : Vec < SanType > ) {
35- let ( ca_cert, ca_key ) = new_ca ( ) ;
36- let ( cert, cert_key) = new_cert ( sans, & ca_cert , & ca_key ) ;
37+ let ( ca_cert, issuer ) = new_ca ( ) ;
38+ let ( cert, cert_key) = new_cert ( sans, & issuer ) ;
3739
3840 std:: fs:: create_dir_all ( path) . unwrap ( ) ;
3941 std:: fs:: write ( path. join ( "localhost_CA.crt" ) , ca_cert. pem ( ) ) . unwrap ( ) ;
4042 std:: fs:: write ( path. join ( "localhost.crt" ) , cert. pem ( ) ) . unwrap ( ) ;
4143 std:: fs:: write ( path. join ( "localhost.key" ) , cert_key. serialize_pem ( ) ) . unwrap ( ) ;
4244}
4345
44- fn new_ca ( ) -> ( Certificate , KeyPair ) {
46+ fn new_ca ( ) -> ( Certificate , Issuer < ' static , KeyPair > ) {
4547 let mut params = CertificateParams :: default ( ) ;
4648 params. is_ca = IsCa :: Ca ( BasicConstraints :: Unconstrained ) ;
4749 // This must be "Certificate Authority"
@@ -55,10 +57,11 @@ fn new_ca() -> (Certificate, KeyPair) {
5557
5658 let key_pair = KeyPair :: generate ( ) . unwrap ( ) ;
5759 let ca_cert = params. self_signed ( & key_pair) . unwrap ( ) ;
58- ( ca_cert, key_pair)
60+ let issuer = Issuer :: new ( params, key_pair) ;
61+ ( ca_cert, issuer)
5962}
6063
61- fn new_cert ( sans : Vec < SanType > , ca_cert : & Certificate , ca_key : & KeyPair ) -> ( Certificate , KeyPair ) {
64+ fn new_cert ( sans : Vec < SanType > , issuer : & Issuer < ' _ , KeyPair > ) -> ( Certificate , KeyPair ) {
6265 let mut params = CertificateParams :: default ( ) ;
6366
6467 // This needs to refer to the hosts that certificate will be used by
@@ -72,7 +75,7 @@ fn new_cert(sans: Vec<SanType>, ca_cert: &Certificate, ca_key: &KeyPair) -> (Cer
7275 . distinguished_name
7376 . push ( DnType :: OrganizationName , "ShotoverTestCertificate" ) ;
7477 let cert_key = KeyPair :: generate ( ) . unwrap ( ) ;
75- let cert = params. signed_by ( & cert_key, ca_cert , ca_key ) . unwrap ( ) ;
78+ let cert = params. signed_by ( & cert_key, issuer ) . unwrap ( ) ;
7679 ( cert, cert_key)
7780}
7881
0 commit comments