@@ -10,8 +10,13 @@ use ra_tls::{
1010use tdx_attest:: { eventlog:: read_event_logs, get_quote} ;
1111
1212pub enum CertRequestClient {
13- Local { ca : CaCert } ,
14- Kms { client : KmsClient < RaClient > } ,
13+ Local {
14+ ca : CaCert ,
15+ } ,
16+ Kms {
17+ client : KmsClient < RaClient > ,
18+ vm_config : String ,
19+ } ,
1520}
1621
1722impl CertRequestClient {
@@ -27,11 +32,13 @@ impl CertRequestClient {
2732 . context ( "Failed to sign certificate" ) ?;
2833 Ok ( vec ! [ cert. pem( ) , ca. pem_cert. clone( ) ] )
2934 }
30- CertRequestClient :: Kms { client } => {
35+ CertRequestClient :: Kms { client, vm_config } => {
3136 let response = client
3237 . sign_cert ( SignCertRequest {
38+ api_version : 1 ,
3339 csr : csr. to_vec ( ) ,
3440 signature : signature. to_vec ( ) ,
41+ vm_config : vm_config. clone ( ) ,
3542 } )
3643 . await ?;
3744 Ok ( response. certificate_chain )
@@ -42,11 +49,15 @@ impl CertRequestClient {
4249 pub async fn get_root_ca ( & self ) -> Result < String > {
4350 match self {
4451 CertRequestClient :: Local { ca } => Ok ( ca. pem_cert . clone ( ) ) ,
45- CertRequestClient :: Kms { client } => Ok ( client. get_meta ( ) . await ?. ca_cert ) ,
52+ CertRequestClient :: Kms { client, .. } => Ok ( client. get_meta ( ) . await ?. ca_cert ) ,
4653 }
4754 }
4855
49- pub async fn create ( keys : & AppKeys , pccs_url : Option < & str > ) -> Result < CertRequestClient > {
56+ pub async fn create (
57+ keys : & AppKeys ,
58+ pccs_url : Option < & str > ,
59+ vm_config : String ,
60+ ) -> Result < CertRequestClient > {
5061 match & keys. key_provider {
5162 KeyProvider :: Local { key } => {
5263 let ca = CaCert :: new ( keys. ca_cert . clone ( ) , key. clone ( ) )
@@ -74,7 +85,7 @@ impl CertRequestClient {
7485 . into_client ( )
7586 . context ( "Failed to create RA client" ) ?;
7687 let client = KmsClient :: new ( ra_client) ;
77- Ok ( CertRequestClient :: Kms { client } )
88+ Ok ( CertRequestClient :: Kms { client, vm_config } )
7889 }
7990 }
8091 }
0 commit comments