1+ use az_tdx_vtpm:: { hcl, imds, report, tdx, vtpm} ;
12use tokio_rustls:: rustls:: pki_types:: CertificateDer ;
3+ // use openssl::pkey::{PKey, Public};
24
35use crate :: attestation:: { compute_report_input, AttestationError , AttestationType , QuoteGenerator } ;
46
@@ -18,6 +20,23 @@ impl QuoteGenerator for MaaQuoteGenerator {
1820 ) -> Result < Vec < u8 > , AttestationError > {
1921 let quote_input = compute_report_input ( cert_chain, exporter) ?;
2022
23+ let td_report = report:: get_report ( ) . unwrap ( ) ;
24+ let td_quote_bytes = imds:: get_td_quote ( & td_report) . unwrap ( ) ;
25+
26+ let bytes = vtpm:: get_report ( ) . unwrap ( ) ;
27+ let hcl_report = hcl:: HclReport :: new ( bytes) . unwrap ( ) ;
28+ let var_data_hash = hcl_report. var_data_sha256 ( ) ;
29+ let ak_pub = hcl_report. ak_pub ( ) . unwrap ( ) ;
30+
31+ let td_report: tdx:: TdReport = hcl_report. try_into ( ) . unwrap ( ) ;
32+ assert ! ( var_data_hash == td_report. report_mac. reportdata[ ..32 ] ) ;
33+
34+ // let nonce = "a nonce".as_bytes();
35+ //
36+ // let tpm_quote = vtpm::get_quote(nonce).unwrap();
37+ // let der = ak_pub.key.try_to_der().unwrap();
38+ // let pub_key = PKey::public_key_from_der(&der).unwrap();
39+ // tpm_quote.verify(&pub_key, nonce).unwrap();
2140 todo ! ( )
2241 }
2342}
0 commit comments