1- use crate :: dcap_utils:: DCAPRemoteAttestationResult ;
1+ use crate :: dcap_utils:: { DCAPRemoteAttestationResult , ValidatedPCSClient } ;
22use crate :: errors:: Error ;
33use anyhow:: anyhow;
44use attestation_report:: QEType ;
55use crypto:: Address ;
6- use dcap_pcs:: client:: PCSClient ;
76use dcap_quote_verifier:: quotes:: version_3:: verify_quote_v3;
87use dcap_quote_verifier:: types:: quotes:: version_3:: QuoteV3 ;
98use keymanager:: EnclaveKeyManager ;
@@ -27,7 +26,7 @@ pub const INTEL_ROOT_CA_HASH: [u8; 32] = [
2726pub fn run_dcap_ra (
2827 key_manager : & EnclaveKeyManager ,
2928 target_enclave_key : Address ,
30- pcs_client : PCSClient ,
29+ pcs_client : ValidatedPCSClient ,
3130) -> Result < ( ) , Error > {
3231 let current_time = Time :: now ( ) ;
3332 let result = dcap_ra ( key_manager, target_enclave_key, current_time, pcs_client) ?;
@@ -44,7 +43,7 @@ pub(crate) fn dcap_ra(
4443 key_manager : & EnclaveKeyManager ,
4544 target_enclave_key : Address ,
4645 current_time : Time ,
47- pcs_client : PCSClient ,
46+ pcs_client : ValidatedPCSClient ,
4847) -> Result < DCAPRemoteAttestationResult , Error > {
4948 let ek_info = key_manager. load ( target_enclave_key) . map_err ( |e| {
5049 Error :: key_manager (
@@ -64,7 +63,7 @@ pub(crate) fn dcap_ra(
6463 let ( quote, _) = QuoteV3 :: from_bytes ( & raw_quote) . map_err ( Error :: dcap_quote_verifier) ?;
6564
6665 let collateral = pcs_client
67- . get_collateral ( true , & quote. signature . qe_cert_data )
66+ . validate_and_get_collateral ( true , & quote. signature . qe_cert_data )
6867 . map_err ( |e| Error :: anyhow ( anyhow ! ( "cannot get collateral data: {}" , e) ) ) ?;
6968
7069 info ! (
@@ -115,6 +114,7 @@ fn rsgx_qe_get_quote(app_report: &sgx_report_t) -> Result<Vec<u8>, sgx_quote3_er
115114#[ cfg( test) ]
116115mod tests {
117116 use super :: * ;
117+ use dcap_pcs:: client:: PCSClient ;
118118 use dcap_quote_verifier:: { crypto:: keccak256sum, types:: SGX_TEE_TYPE } ;
119119
120120 #[ test]
0 commit comments