diff --git a/Cargo.lock b/Cargo.lock index e849e1c..b14146a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -572,7 +572,7 @@ checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] name = "attest-measure" version = "0.0.1" -source = "git+https://github.com/easy-tee/attest.git?rev=8206cd19d9dcb1978d85a3d8dece06a3ee7a1206#8206cd19d9dcb1978d85a3d8dece06a3ee7a1206" +source = "git+https://github.com/easy-tee/attest.git?rev=12f1e29f6ea63ecc2f80f39c2c1f1172720bcf24#12f1e29f6ea63ecc2f80f39c2c1f1172720bcf24" dependencies = [ "attest-types", "authenticode", @@ -597,7 +597,7 @@ dependencies = [ [[package]] name = "attest-types" version = "0.0.1" -source = "git+https://github.com/easy-tee/attest.git?rev=8206cd19d9dcb1978d85a3d8dece06a3ee7a1206#8206cd19d9dcb1978d85a3d8dece06a3ee7a1206" +source = "git+https://github.com/easy-tee/attest.git?rev=12f1e29f6ea63ecc2f80f39c2c1f1172720bcf24#12f1e29f6ea63ecc2f80f39c2c1f1172720bcf24" dependencies = [ "parity-scale-codec", "serde", @@ -608,11 +608,12 @@ dependencies = [ [[package]] name = "attestation" version = "0.0.1" -source = "git+https://github.com/flashbots/attested-tls?branch=main#bf8b99507d09d6ab79d675346bc604989b491ef9" +source = "git+https://github.com/flashbots/attested-tls?branch=main#084ebec490abc605054923811dad9735310087d4" dependencies = [ "anyhow", "attest-measure", "attest-types", + "az-cvm-vtpm", "az-tdx-vtpm", "base64 0.22.1", "dcap-qvl", @@ -3070,7 +3071,7 @@ dependencies = [ [[package]] name = "mock-tdx" version = "0.0.1" -source = "git+https://github.com/flashbots/attested-tls?branch=main#bf8b99507d09d6ab79d675346bc604989b491ef9" +source = "git+https://github.com/flashbots/attested-tls?branch=main#084ebec490abc605054923811dad9735310087d4" dependencies = [ "axum", "dcap-qvl", @@ -3482,7 +3483,7 @@ checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] name = "pccs" version = "0.0.1" -source = "git+https://github.com/flashbots/attested-tls?branch=main#bf8b99507d09d6ab79d675346bc604989b491ef9" +source = "git+https://github.com/flashbots/attested-tls?branch=main#084ebec490abc605054923811dad9735310087d4" dependencies = [ "anyhow", "dcap-qvl", @@ -3764,7 +3765,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b570b25f7617e43d59005d0990ccb79e950a423952cea19671b7a876da390adf" dependencies = [ "anyhow", - "itertools 0.10.5", + "itertools 0.13.0", "proc-macro2", "quote", "syn 2.0.108", diff --git a/attested-tls/src/lib.rs b/attested-tls/src/lib.rs index 3fdfe2c..1021950 100644 --- a/attested-tls/src/lib.rs +++ b/attested-tls/src/lib.rs @@ -204,6 +204,7 @@ impl AttestedTlsServer { self.attestation_verifier .verify_attestation(remote_attestation_message, remote_input_data) .await? + .map(|verified| verified.measurements) } else { None }; @@ -382,7 +383,8 @@ impl AttestedTlsClient { let measurements = self .attestation_verifier .verify_attestation(remote_attestation_message, remote_input_data) - .await?; + .await? + .map(|verified| verified.measurements); // If we are in a CVM, provide an attestation let attestation = if self.attestation_generator.attestation_type != AttestationType::None { @@ -633,7 +635,7 @@ mod tests { use super::*; use crate::test_helpers::{generate_certificate_chain, generate_tls_config}; - use attestation::measurements::MeasurementPolicy; + use attestation::{PccsMode, measurements::MeasurementPolicy}; use tokio::net::TcpListener; #[tokio::test] @@ -752,8 +754,9 @@ mod tests { ) .unwrap(); - let mut attestation_verifier = AttestationVerifier::mock(); - attestation_verifier.measurement_policy = measurement_policy; + let attestation_verifier = AttestationVerifier::builder(measurement_policy) + .with_pccs_mode(PccsMode::None) + .build(); let client = AttestedTlsClient::new_with_tls_config( client_config, diff --git a/src/lib.rs b/src/lib.rs index 3eab66d..8b4a833 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -793,7 +793,8 @@ where #[cfg(test)] mod tests { use crate::{ - attestation::measurements::MeasurementPolicy, attested_tls::get_tls_cert_with_config, + attestation::{PccsMode, measurements::MeasurementPolicy}, + attested_tls::get_tls_cert_with_config, }; use super::*; @@ -1338,8 +1339,9 @@ mod tests { ) .unwrap(); - let mut attestation_verifier = AttestationVerifier::mock(); - attestation_verifier.measurement_policy = measurement_policy; + let attestation_verifier = AttestationVerifier::builder(measurement_policy) + .with_pccs_mode(PccsMode::None) + .build(); let proxy_client_result = ProxyClient::new_with_tls_config( client_config, diff --git a/src/main.rs b/src/main.rs index 449fe69..7cef2f0 100644 --- a/src/main.rs +++ b/src/main.rs @@ -15,7 +15,9 @@ use attested_tls_proxy::{ attested_get::{attested_get, split_target_and_path}, attested_tls::{ TlsCertAndKey, - attestation::{AttestationType, AttestationVerifier, measurements::MeasurementPolicy}, + attestation::{ + AttestationType, AttestationVerifier, PccsMode, measurements::MeasurementPolicy, + }, }, file_server::attested_file_server, get_tls_cert, health_check, @@ -230,13 +232,14 @@ async fn main() -> anyhow::Result<()> { } }; - let mut attestation_verifier = AttestationVerifier::new( - measurement_policy, - None, - cli.log_dcap_quote, - cli.override_azure_outdated_tcb, - ); - attestation_verifier.internal_pccs = Some(pccs::Pccs::new_without_prewarm(cli.pccs_url)); + let mut attestation_verifier_builder = AttestationVerifier::builder(measurement_policy) + .with_pccs_mode(PccsMode::Lazy) + .with_dump_dcap_quotes(cli.log_dcap_quote) + .with_override_azure_outdated_tcb(cli.override_azure_outdated_tcb); + if let Some(pccs_url) = cli.pccs_url { + attestation_verifier_builder = attestation_verifier_builder.with_pccs_url(pccs_url); + } + let attestation_verifier = attestation_verifier_builder.build(); match cli.command { CliCommand::Client {