@@ -15,8 +15,6 @@ use tokio_rustls::rustls::pki_types::CertificateDer;
1515use x509_parser:: prelude:: * ;
1616use serde:: Deserialize ;
1717
18- use crate :: test_helpers:: default_measurements;
19-
2018/// For fetching collateral directly from intel, if no PCCS is specified
2119const PCS_URL : & str = "https://api.trustedservices.intel.com" ;
2220
@@ -82,32 +80,43 @@ pub enum MeasurementFormatError {
8280
8381#[ derive( Debug ) ]
8482pub struct MeasurementRecord {
85- measurement_id : String ,
86- attestation_type : AttestationType ,
87- measurements : Measurements ,
88- }
89-
90- #[ derive( Debug , Deserialize ) ]
91- struct MeasurementRecordSimple {
92- measurement_id : String ,
93- attestation_type : String ,
94- measurements : HashMap < String , MeasurementEntry > ,
83+ pub measurement_id : String ,
84+ pub attestation_type : AttestationType ,
85+ pub measurements : Measurements ,
9586}
9687
97- #[ derive( Debug , Deserialize ) ]
98- struct MeasurementEntry {
99- expected : String ,
100- }
10188
10289pub async fn get_measurements_from_file ( measurement_file : PathBuf ) -> Vec < MeasurementRecord > {
90+ #[ derive( Debug , Deserialize ) ]
91+ struct MeasurementRecordSimple {
92+ measurement_id : String ,
93+ attestation_type : String ,
94+ measurements : HashMap < String , MeasurementEntry > ,
95+ }
96+
97+ #[ derive( Debug , Deserialize ) ]
98+ struct MeasurementEntry {
99+ expected : String ,
100+ }
101+
103102 let measurements_json = tokio:: fs:: read ( measurement_file) . await . unwrap ( ) ;
104103 let measurements_simple: Vec < MeasurementRecordSimple > = serde_json:: from_slice ( & measurements_json) . unwrap ( ) ;
105- let measurements = Vec :: new ( ) ;
104+ let mut measurements = Vec :: new ( ) ;
106105 for measurement in measurements_simple {
107106 measurements. push ( MeasurementRecord {
108107 measurement_id : measurement. measurement_id ,
109108 attestation_type : AttestationType :: from_str ( & measurement. attestation_type ) . unwrap ( ) ,
110- measurements : Measurements { platform : PlatformMeasurements { mrtd : ( ) , rtmr0 : ( ) } , cvm_image : CvmImageMeasurements { rtmr1 : ( ) , rtmr2 : ( ) , rtmr3 : ( ) } }
109+ measurements : Measurements {
110+ platform : PlatformMeasurements {
111+ mrtd : hex:: decode ( & measurement. measurements [ "0" ] . expected ) . unwrap ( ) . try_into ( ) . unwrap ( ) ,
112+ rtmr0 : hex:: decode ( & measurement. measurements [ "1" ] . expected ) . unwrap ( ) . try_into ( ) . unwrap ( ) ,
113+ } ,
114+ cvm_image : CvmImageMeasurements {
115+ rtmr1 : hex:: decode ( & measurement. measurements [ "2" ] . expected ) . unwrap ( ) . try_into ( ) . unwrap ( ) ,
116+ rtmr2 : hex:: decode ( & measurement. measurements [ "3" ] . expected ) . unwrap ( ) . try_into ( ) . unwrap ( ) ,
117+ rtmr3 : hex:: decode ( & measurement. measurements [ "4" ] . expected ) . unwrap ( ) . try_into ( ) . unwrap ( ) ,
118+ }
119+ }
111120 } ) ;
112121 }
113122 measurements
0 commit comments