This is an automated email from the ASF dual-hosted git repository. hsun pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-teaclave.git
commit 1e28ab03ad8c67a74c1a8b80684773c3c7edb0dd Author: GeminiCarrie <[email protected]> AuthorDate: Thu Jul 6 06:47:24 2023 +0000 Bump tonic to 0.9.2 --- attestation/Cargo.toml | 7 +- attestation/src/report.rs | 15 +- attestation/src/service.rs | 39 ++-- attestation/src/verifier.rs | 51 ++--- cli/Cargo.toml | 25 +- cli/src/main.rs | 41 ++-- cmake/tomls/Cargo.sgx_trusted_lib.lock | 255 ++++++++++++--------- cmake/tomls/Cargo.sgx_trusted_lib.toml | 1 + cmake/tomls/Cargo.sgx_untrusted_app.lock | 224 ++++++++++++------ cmake/tomls/Cargo.sgx_untrusted_app.toml | 3 +- cmake/tomls/Cargo.unix_app.lock | 241 +++++++++++-------- cmake/tomls/Cargo.unix_app.toml | 1 + examples/rust/builtin_echo/Cargo.lock | 229 +++++++++++------- examples/rust/builtin_echo/Cargo.toml | 2 + .../rust/builtin_ordered_set_intersect/Cargo.lock | 229 +++++++++++------- .../rust/builtin_ordered_set_intersect/Cargo.toml | 2 + examples/rust/sequential_functions/Cargo.lock | 229 +++++++++++------- examples/rust/sequential_functions/Cargo.toml | 2 + rpc/Cargo.toml | 10 +- rpc/src/config.rs | 105 ++++++--- sdk/rust/Cargo.lock | 229 +++++++++++------- sdk/rust/Cargo.toml | 2 + services/proto/Cargo.toml | 6 +- tests/utils/proc_macro/Cargo.toml | 2 +- types/Cargo.toml | 2 +- 25 files changed, 1224 insertions(+), 728 deletions(-) diff --git a/attestation/Cargo.toml b/attestation/Cargo.toml index 7e303951..69c5720f 100644 --- a/attestation/Cargo.toml +++ b/attestation/Cargo.toml @@ -58,14 +58,15 @@ libc = { version = "0.2.66", optional = true } log = { version = "0.4.17", features = ["release_max_level_info"] } num-bigint = { version = "0.2.2" } percent-encoding = { version = "2.1.0" } -rustls = { version = "0.19.0", features = ["dangerous_configuration"] } +rustls = { version = "0.21.1", features = ["dangerous_configuration"] } +rustls-pemfile = { version = "1" } +rustls-webpki = { version = "0.100.0" } serde = { version = "1.0.92", features = ["derive"] } serde_json = { version = "1.0.39" } thiserror = { version = "1.0.9" } url = { version = "2.1.1" } uuid = { version = "0.8.1", features = ["v4"] } -webpki = { version = "0.21.0" } -webpki-roots = { version = "0.21.0" } +webpki-roots = { version = "0.23.0" } yasna = { version = "0.3.0", features = ["bit-vec", "num-bigint", "chrono"] } teaclave_types = { path = "../types" } diff --git a/attestation/src/report.rs b/attestation/src/report.rs index d44c86c1..47ad5455 100644 --- a/attestation/src/report.rs +++ b/attestation/src/report.rs @@ -523,18 +523,9 @@ impl AttestationReport { log::debug!("endorsed attestation report: {:?}", &report); // Verify report's signature - let signing_cert = webpki::EndEntityCert::from(&report.certs[0])?; - let root_store = { - let mut root_store = rustls::RootCertStore::empty(); - root_store.add(&rustls::Certificate(report_ca_cert.to_vec()))?; - root_store - }; - let trust_anchors: Vec<webpki::TrustAnchor> = root_store - .roots - .iter() - .map(|cert| cert.to_trust_anchor()) - .collect(); + let signing_cert = webpki::EndEntityCert::try_from(report.certs[0].as_ref())?; + let trust_anchors = vec![webpki::TrustAnchor::try_from_cert_der(report_ca_cert)?]; let chain: Vec<&[u8]> = if report.certs.len() > 1 { let mut c = report.certs[1..] .iter() @@ -549,7 +540,7 @@ impl AttestationReport { .map_err(|_| anyhow!("Cannot convert time."))?; signing_cert.verify_is_valid_tls_server_cert( SUPPORTED_SIG_ALGS, - &webpki::TLSServerTrustAnchors(&trust_anchors), + &webpki::TlsServerTrustAnchors(&trust_anchors), &chain, time, )?; diff --git a/attestation/src/service.rs b/attestation/src/service.rs index e65fb409..3c524bc1 100644 --- a/attestation/src/service.rs +++ b/attestation/src/service.rs @@ -117,21 +117,34 @@ impl EndorsedAttestationReport { } } -fn new_tls_stream(url: &url::Url) -> Result<rustls::StreamOwned<rustls::ClientSession, TcpStream>> { +fn new_tls_stream( + url: &url::Url, +) -> Result<rustls::StreamOwned<rustls::client::ClientConnection, TcpStream>> { let host_str = url .host_str() .ok_or(AttestationServiceError::InvalidAddress)?; - let dns_name = webpki::DNSNameRef::try_from_ascii_str(host_str)?; - let mut config = rustls::ClientConfig::new(); + let mut root_certs = rustls::RootCertStore::empty(); #[cfg(dcap)] - config - .root_store - .add_pem_file(&mut DCAP_ROOT_CA_CERT.to_string().as_bytes()) - .map_err(|_| AttestationServiceError::TlsError)?; - config - .root_store - .add_server_trust_anchors(&webpki_roots::TLS_SERVER_ROOTS); - let client = rustls::ClientSession::new(&Arc::new(config), dns_name); + { + let certs = rustls_pemfile::certs(&mut DCAP_ROOT_CA_CERT.to_string().as_bytes()) + .map_err(|_| AttestationServiceError::TlsError)?; + let (valid_count, _) = root_certs.add_parsable_certificates(&certs); + anyhow::ensure!(valid_count >= 1, "DCAP_ROOT_CA_CERT error"); + } + root_certs.add_server_trust_anchors(webpki_roots::TLS_SERVER_ROOTS.0.iter().map( + |trust_anchor| { + rustls::OwnedTrustAnchor::from_subject_spki_name_constraints( + trust_anchor.subject, + trust_anchor.spki, + trust_anchor.name_constraints, + ) + }, + )); + let config = rustls::ClientConfig::builder() + .with_safe_defaults() + .with_root_certificates(root_certs) + .with_no_client_auth(); + let client = rustls::client::ClientConnection::new(Arc::new(config), host_str.try_into()?)?; let addrs = url.socket_addrs(|| match url.scheme() { "https" => Some(443), _ => None, @@ -268,9 +281,9 @@ pub(crate) fn get_report( AttestationServiceError::MissingHeader(signing_cert_header.to_string()) })?; let decoded_cert = percent_encoding::percent_decode_str(cert_str).decode_utf8()?; - let certs = rustls::internal::pemfile::certs(&mut decoded_cert.as_bytes()) + let certs = rustls_pemfile::certs(&mut decoded_cert.as_bytes()) .map_err(|_| anyhow!("pemfile error"))?; - certs.iter().map(|c| c.0.clone()).collect() + certs }; debug!("return_report"); diff --git a/attestation/src/verifier.rs b/attestation/src/verifier.rs index 7e12b4b5..984bef4b 100644 --- a/attestation/src/verifier.rs +++ b/attestation/src/verifier.rs @@ -102,57 +102,52 @@ impl AttestationReportVerifier { } } -impl rustls::ServerCertVerifier for AttestationReportVerifier { +impl rustls::client::ServerCertVerifier for AttestationReportVerifier { fn verify_server_cert( &self, - _roots: &rustls::RootCertStore, - certs: &[rustls::Certificate], - _hostname: webpki::DNSNameRef, + end_entity: &rustls::Certificate, + _intermediates: &[rustls::Certificate], + _server_name: &rustls::ServerName, + _scts: &mut dyn Iterator<Item = &[u8]>, _ocsp: &[u8], - ) -> std::result::Result<rustls::ServerCertVerified, rustls::TLSError> { + _now: std::time::SystemTime, + ) -> std::result::Result<rustls::client::ServerCertVerified, rustls::Error> { // This call automatically verifies certificate signature debug!("verify server cert"); - if certs.len() != 1 { - return Err(rustls::TLSError::NoCertificatesPresented); - } - if self.verify_cert(certs) { - Ok(rustls::ServerCertVerified::assertion()) + if self.verify_cert(&[end_entity.to_owned()]) { + Ok(rustls::client::ServerCertVerified::assertion()) } else { - Err(rustls::TLSError::WebPKIError( - webpki::Error::ExtensionValueInvalid, + Err(rustls::Error::InvalidCertificate( + rustls::CertificateError::UnhandledCriticalExtension, )) } } } -impl rustls::ClientCertVerifier for AttestationReportVerifier { +impl rustls::server::ClientCertVerifier for AttestationReportVerifier { fn offer_client_auth(&self) -> bool { // If test_mode is on, then disable TLS client authentication. !cfg!(test_mode) } - fn client_auth_root_subjects( - &self, - _sni: Option<&webpki::DNSName>, - ) -> Option<rustls::DistinguishedNames> { - Some(rustls::DistinguishedNames::new()) + fn client_auth_root_subjects(&self) -> &[rustls::DistinguishedName] { + &[] } fn verify_client_cert( &self, - certs: &[rustls::Certificate], - _sni: Option<&webpki::DNSName>, - ) -> std::result::Result<rustls::ClientCertVerified, rustls::TLSError> { + end_entity: &rustls::Certificate, + _intermediates: &[rustls::Certificate], + _now: std::time::SystemTime, + ) -> std::result::Result<rustls::server::ClientCertVerified, rustls::Error> { // This call automatically verifies certificate signature debug!("verify client cert"); - if certs.len() != 1 { - return Err(rustls::TLSError::NoCertificatesPresented); - } - if self.verify_cert(certs) { - Ok(rustls::ClientCertVerified::assertion()) + + if self.verify_cert(&[end_entity.to_owned()]) { + Ok(rustls::server::ClientCertVerified::assertion()) } else { - Err(rustls::TLSError::WebPKIError( - webpki::Error::ExtensionValueInvalid, + Err(rustls::Error::InvalidCertificate( + rustls::CertificateError::UnhandledCriticalExtension, )) } } diff --git a/cli/Cargo.toml b/cli/Cargo.toml index 646b70f1..f173735b 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -24,15 +24,18 @@ license = "Apache-2.0" edition = "2021" [dependencies] -anyhow = { version = "1.0.26" } -structopt = "0.3" -teaclave_crypto = { path = "../crypto" } -hex = { version = "0.4.0" } -teaclave_types = { path = "../types", features = ["app"] } +anyhow = { version = "1.0.26" } +env_logger = { version = "0.7.1" } +hex = { version = "0.4.0" } +http = { version = "0.2" } +pem = { version = "0.7.0" } +rustls = { version = "0.21.0", features = ["dangerous_configuration"] } +rustls-webpki = { version = "0.100.0" } +structopt = { version = "0.3" } +webpki-roots = { version = "0.23.0" } + teaclave_attestation = { path = "../attestation" } -env_logger = { version = "0.7.1" } -webpki-roots = { version = "0.21.0" } -webpki = { version = "0.21.0" } -rustls = { version = "0.19.0", features = ["dangerous_configuration"] } -http = { version = "0.2" } -pem = "0.7.0" +teaclave_crypto = { path = "../crypto" } +teaclave_types = { path = "../types", features = ["app"] } + + diff --git a/cli/src/main.rs b/cli/src/main.rs index 6b1af5ed..bba72b7c 100644 --- a/cli/src/main.rs +++ b/cli/src/main.rs @@ -221,23 +221,22 @@ impl TeaclaveServerCertVerifier { } } -impl rustls::ServerCertVerifier for TeaclaveServerCertVerifier { +impl rustls::client::ServerCertVerifier for TeaclaveServerCertVerifier { fn verify_server_cert( &self, - _roots: &rustls::RootCertStore, - certs: &[rustls::Certificate], - _hostname: webpki::DNSNameRef, + end_entity: &rustls::Certificate, + _intermediates: &[rustls::Certificate], + _server_name: &rustls::ServerName, + _scts: &mut dyn Iterator<Item = &[u8]>, _ocsp: &[u8], - ) -> std::result::Result<rustls::ServerCertVerified, rustls::TLSError> { + _now: std::time::SystemTime, + ) -> std::result::Result<rustls::client::ServerCertVerified, rustls::Error> { // This call automatically verifies certificate signature - if certs.len() != 1 { - return Err(rustls::TLSError::NoCertificatesPresented); - } - if self.display_attestation_report(certs) { - Ok(rustls::ServerCertVerified::assertion()) + if self.display_attestation_report(&[end_entity.to_owned()]) { + Ok(rustls::client::ServerCertVerified::assertion()) } else { - Err(rustls::TLSError::WebPKIError( - webpki::Error::ExtensionValueInvalid, + Err(rustls::Error::InvalidCertificate( + rustls::CertificateError::UnhandledCriticalExtension, )) } } @@ -247,18 +246,18 @@ fn attest(opt: AttestOpt) -> Result<()> { let uri = opt.address.parse::<Uri>()?; let hostname = uri.host().ok_or_else(|| anyhow!("Invalid hostname."))?; let mut stream = std::net::TcpStream::connect(opt.address)?; - let hostname = webpki::DNSNameRef::try_from_ascii_str(hostname)?; let content = fs::read(opt.as_ca_cert)?; let pem = pem::parse(content)?; let verifier = Arc::new(TeaclaveServerCertVerifier::new(&pem.contents)); - let mut config = rustls::ClientConfig::new(); - config.dangerous().set_certificate_verifier(verifier); - config.versions.clear(); - config.enable_sni = false; - config.versions.push(rustls::ProtocolVersion::TLSv1_2); - let rc_config = Arc::new(config); - - let mut session = rustls::ClientSession::new(&rc_config, hostname); + let config = rustls::ClientConfig::builder() + .with_safe_default_cipher_suites() + .with_safe_default_kx_groups() + .with_protocol_versions(&[&rustls::version::TLS12]) + .unwrap() + .with_custom_certificate_verifier(verifier) + .with_no_client_auth(); + let mut session = + rustls::client::ClientConnection::new(Arc::new(config), hostname.try_into()?)?; let mut tls_stream = rustls::Stream::new(&mut session, &mut stream); tls_stream.write_all(&[0]).unwrap(); diff --git a/cmake/tomls/Cargo.sgx_trusted_lib.lock b/cmake/tomls/Cargo.sgx_trusted_lib.lock index 00677f72..e128ec1b 100644 --- a/cmake/tomls/Cargo.sgx_trusted_lib.lock +++ b/cmake/tomls/Cargo.sgx_trusted_lib.lock @@ -107,6 +107,51 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +[[package]] +name = "axum" +version = "0.6.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8175979259124331c1d7bf6586ee7e0da434155e4b2d48ec2c8386281d8df39" +dependencies = [ + "async-trait", + "axum-core", + "bitflags", + "bytes", + "futures-util", + "http", + "http-body", + "hyper", + "itoa", + "matchit", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde", + "sync_wrapper", + "tower", + "tower-layer", + "tower-service", +] + +[[package]] +name = "axum-core" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c" +dependencies = [ + "async-trait", + "bytes", + "futures-util", + "http", + "http-body", + "mime", + "rustversion", + "tower-layer", + "tower-service", +] + [[package]] name = "base64" version = "0.12.3" @@ -173,7 +218,7 @@ checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" [[package]] name = "casbin" version = "2.0.9" -source = "git+https://github.com/apache/incubator-teaclave-crates#2b87d3972d43fa0fee2496dfc703e4f772ffbe9f" +source = "git+https://github.com/apache/incubator-teaclave-crates#9ca099caa1508c3b7ab1a54899f390f9232f10ff" dependencies = [ "async-trait", "fixedbitset", @@ -342,7 +387,7 @@ checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" [[package]] name = "csv" version = "1.2.2" -source = "git+https://github.com/apache/incubator-teaclave-crates#2b87d3972d43fa0fee2496dfc703e4f772ffbe9f" +source = "git+https://github.com/apache/incubator-teaclave-crates#9ca099caa1508c3b7ab1a54899f390f9232f10ff" dependencies = [ "csv-core", "itoa", @@ -353,7 +398,7 @@ dependencies = [ [[package]] name = "csv-core" version = "0.1.10" -source = "git+https://github.com/apache/incubator-teaclave-crates#2b87d3972d43fa0fee2496dfc703e4f772ffbe9f" +source = "git+https://github.com/apache/incubator-teaclave-crates#9ca099caa1508c3b7ab1a54899f390f9232f10ff" dependencies = [ "memchr", ] @@ -448,7 +493,7 @@ checksum = "25c7df09945d65ea8d70b3321547ed414bbc540aad5bac6883d021b970f35b04" [[package]] name = "fastfield_codecs" version = "0.3.1" -source = "git+https://github.com/apache/incubator-teaclave-crates#2b87d3972d43fa0fee2496dfc703e4f772ffbe9f" +source = "git+https://github.com/apache/incubator-teaclave-crates#9ca099caa1508c3b7ab1a54899f390f9232f10ff" dependencies = [ "fastdivide", "itertools 0.10.5", @@ -605,7 +650,7 @@ dependencies = [ [[package]] name = "gbdt" version = "0.1.1" -source = "git+https://github.com/apache/incubator-teaclave-crates#2b87d3972d43fa0fee2496dfc703e4f772ffbe9f" +source = "git+https://github.com/apache/incubator-teaclave-crates#9ca099caa1508c3b7ab1a54899f390f9232f10ff" dependencies = [ "cfg-if 0.1.10", "rand", @@ -631,7 +676,7 @@ dependencies = [ [[package]] name = "getrandom" version = "0.2.10" -source = "git+https://github.com/apache/incubator-teaclave-crates#2b87d3972d43fa0fee2496dfc703e4f772ffbe9f" +source = "git+https://github.com/apache/incubator-teaclave-crates#9ca099caa1508c3b7ab1a54899f390f9232f10ff" dependencies = [ "cfg-if 1.0.0", "js-sys", @@ -667,7 +712,7 @@ dependencies = [ "indexmap", "slab", "tokio", - "tokio-util 0.7.8", + "tokio-util", "tracing", ] @@ -695,12 +740,9 @@ version = "0.12.0" [[package]] name = "heck" -version = "0.3.3" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" -dependencies = [ - "unicode-segmentation", -] +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] name = "hermit-abi" @@ -825,7 +867,7 @@ dependencies = [ [[package]] name = "image" version = "0.23.14" -source = "git+https://github.com/apache/incubator-teaclave-crates#2b87d3972d43fa0fee2496dfc703e4f772ffbe9f" +source = "git+https://github.com/apache/incubator-teaclave-crates#9ca099caa1508c3b7ab1a54899f390f9232f10ff" dependencies = [ "bytemuck", "byteorder", @@ -1037,6 +1079,12 @@ dependencies = [ "regex-automata", ] +[[package]] +name = "matchit" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b87248edafb776e59e6ee64a79086f65890d3510f2c656c000bf2a7e8a0aea40" + [[package]] name = "matrixmultiply" version = "0.1.15" @@ -1089,7 +1137,7 @@ dependencies = [ [[package]] name = "mio" version = "0.8.6" -source = "git+https://github.com/apache/incubator-teaclave-crates#2b87d3972d43fa0fee2496dfc703e4f772ffbe9f" +source = "git+https://github.com/apache/incubator-teaclave-crates#9ca099caa1508c3b7ab1a54899f390f9232f10ff" dependencies = [ "libc", "log", @@ -1242,7 +1290,7 @@ dependencies = [ [[package]] name = "num_cpus" version = "1.14.0" -source = "git+https://github.com/apache/incubator-teaclave-crates#2b87d3972d43fa0fee2496dfc703e4f772ffbe9f" +source = "git+https://github.com/apache/incubator-teaclave-crates#9ca099caa1508c3b7ab1a54899f390f9232f10ff" dependencies = [ "hermit-abi 0.1.19", "libc", @@ -1316,7 +1364,7 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "ownedbytes" version = "0.4.0" -source = "git+https://github.com/apache/incubator-teaclave-crates#2b87d3972d43fa0fee2496dfc703e4f772ffbe9f" +source = "git+https://github.com/apache/incubator-teaclave-crates#9ca099caa1508c3b7ab1a54899f390f9232f10ff" dependencies = [ "stable_deref_trait", ] @@ -1415,6 +1463,16 @@ version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +[[package]] +name = "prettyplease" +version = "0.1.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86" +dependencies = [ + "proc-macro2 1.0.63", + "syn 1.0.109", +] + [[package]] name = "proc-macro-hack" version = "0.5.20+deprecated" @@ -1441,9 +1499,9 @@ dependencies = [ [[package]] name = "prost" -version = "0.9.0" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "444879275cb4fd84958b1a1d5420d15e6fcf7c235fe47f053c9c2a80aceb6001" +checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd" dependencies = [ "bytes", "prost-derive", @@ -1451,9 +1509,9 @@ dependencies = [ [[package]] name = "prost-build" -version = "0.9.0" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62941722fb675d463659e49c4f3fe1fe792ff24fe5bbaa9c08cd3b98a1c354f5" +checksum = "119533552c9a7ffacc21e099c24a0ac8bb19c2a2a3f363de84cd9b844feab270" dependencies = [ "bytes", "heck", @@ -1462,18 +1520,20 @@ dependencies = [ "log", "multimap", "petgraph", + "prettyplease", "prost", "prost-types", "regex", + "syn 1.0.109", "tempfile", "which", ] [[package]] name = "prost-derive" -version = "0.9.0" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9cc1a3263e07e0bf68e96268f37665207b49560d98739662cdfaae215c720fe" +checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4" dependencies = [ "anyhow", "itertools 0.10.5", @@ -1484,11 +1544,10 @@ dependencies = [ [[package]] name = "prost-types" -version = "0.9.0" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534b7a0e836e3c482d2693070f982e39e7611da9695d4d1f5a4b186b51faef0a" +checksum = "213622a1460818959ac1181aaeb2dc9c7f63df720db7d788b3e24eacd1983e13" dependencies = [ - "bytes", "prost", ] @@ -1513,7 +1572,7 @@ dependencies = [ [[package]] name = "rand" version = "0.8.5" -source = "git+https://github.com/apache/incubator-teaclave-crates#2b87d3972d43fa0fee2496dfc703e4f772ffbe9f" +source = "git+https://github.com/apache/incubator-teaclave-crates#9ca099caa1508c3b7ab1a54899f390f9232f10ff" dependencies = [ "libc", "rand_chacha", @@ -1523,7 +1582,7 @@ dependencies = [ [[package]] name = "rand_chacha" version = "0.3.1" -source = "git+https://github.com/apache/incubator-teaclave-crates#2b87d3972d43fa0fee2496dfc703e4f772ffbe9f" +source = "git+https://github.com/apache/incubator-teaclave-crates#9ca099caa1508c3b7ab1a54899f390f9232f10ff" dependencies = [ "ppv-lite86", "rand_core 0.6.4 (git+https://github.com/apache/incubator-teaclave-crates)", @@ -1541,7 +1600,7 @@ dependencies = [ [[package]] name = "rand_core" version = "0.6.4" -source = "git+https://github.com/apache/incubator-teaclave-crates#2b87d3972d43fa0fee2496dfc703e4f772ffbe9f" +source = "git+https://github.com/apache/incubator-teaclave-crates#9ca099caa1508c3b7ab1a54899f390f9232f10ff" dependencies = [ "getrandom", ] @@ -1565,7 +1624,7 @@ checksum = "ebac11a9d2e11f2af219b8b8d833b76b1ea0e054aa0e8d8e9e4cbde353bdf019" [[package]] name = "rayon" version = "1.7.0" -source = "git+https://github.com/apache/incubator-teaclave-crates#2b87d3972d43fa0fee2496dfc703e4f772ffbe9f" +source = "git+https://github.com/apache/incubator-teaclave-crates#9ca099caa1508c3b7ab1a54899f390f9232f10ff" dependencies = [ "either", "rayon-core", @@ -1574,7 +1633,7 @@ dependencies = [ [[package]] name = "rayon-core" version = "1.11.0" -source = "git+https://github.com/apache/incubator-teaclave-crates#2b87d3972d43fa0fee2496dfc703e4f772ffbe9f" +source = "git+https://github.com/apache/incubator-teaclave-crates#9ca099caa1508c3b7ab1a54899f390f9232f10ff" dependencies = [ "crossbeam-channel", "crossbeam-deque", @@ -1661,7 +1720,7 @@ dependencies = [ "serde_urlencoded", "tokio", "tokio-native-tls", - "tokio-util 0.7.8", + "tokio-util", "tower-service", "url", "wasm-bindgen", @@ -1674,7 +1733,7 @@ dependencies = [ [[package]] name = "rhai" version = "1.15.0" -source = "git+https://github.com/apache/incubator-teaclave-crates#2b87d3972d43fa0fee2496dfc703e4f772ffbe9f" +source = "git+https://github.com/apache/incubator-teaclave-crates#9ca099caa1508c3b7ab1a54899f390f9232f10ff" dependencies = [ "ahash 0.8.3", "bitflags", @@ -1689,7 +1748,7 @@ dependencies = [ [[package]] name = "rhai_codegen" version = "1.5.0" -source = "git+https://github.com/apache/incubator-teaclave-crates#2b87d3972d43fa0fee2496dfc703e4f772ffbe9f" +source = "git+https://github.com/apache/incubator-teaclave-crates#9ca099caa1508c3b7ab1a54899f390f9232f10ff" dependencies = [ "proc-macro2 1.0.63", "quote 1.0.29", @@ -1699,7 +1758,7 @@ dependencies = [ [[package]] name = "ring" version = "0.16.20" -source = "git+https://github.com/apache/incubator-teaclave-crates#2b87d3972d43fa0fee2496dfc703e4f772ffbe9f" +source = "git+https://github.com/apache/incubator-teaclave-crates#9ca099caa1508c3b7ab1a54899f390f9232f10ff" dependencies = [ "cc", "libc", @@ -1748,7 +1807,7 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" [[package]] name = "rustface" version = "0.1.7" -source = "git+https://github.com/apache/incubator-teaclave-crates#2b87d3972d43fa0fee2496dfc703e4f772ffbe9f" +source = "git+https://github.com/apache/incubator-teaclave-crates#9ca099caa1508c3b7ab1a54899f390f9232f10ff" dependencies = [ "byteorder", "image", @@ -1773,14 +1832,32 @@ dependencies = [ [[package]] name = "rustls" -version = "0.19.1" -source = "git+https://github.com/apache/incubator-teaclave-crates#2b87d3972d43fa0fee2496dfc703e4f772ffbe9f" +version = "0.21.2" +source = "git+https://github.com/apache/incubator-teaclave-crates#9ca099caa1508c3b7ab1a54899f390f9232f10ff" dependencies = [ - "base64 0.13.1", "log", "ring", + "rustls-webpki", "sct", - "webpki", +] + +[[package]] +name = "rustls-pemfile" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2" +dependencies = [ + "base64 0.21.2", +] + +[[package]] +name = "rustls-webpki" +version = "0.100.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6207cd5ed3d8dca7816f8f3725513a34609c0c765bf652b8c3cb4cfd87db46b" +dependencies = [ + "ring", + "untrusted", ] [[package]] @@ -1805,7 +1882,7 @@ dependencies = [ [[package]] name = "rusty-machine" version = "0.5.4" -source = "git+https://github.com/apache/incubator-teaclave-crates#2b87d3972d43fa0fee2496dfc703e4f772ffbe9f" +source = "git+https://github.com/apache/incubator-teaclave-crates#9ca099caa1508c3b7ab1a54899f390f9232f10ff" dependencies = [ "num 0.1.42", "rand", @@ -1844,9 +1921,9 @@ checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" [[package]] name = "sct" -version = "0.6.1" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b362b83898e0e69f38515b82ee15aa80636befe47c3b6d3d89a911e78fc228ce" +checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" dependencies = [ "ring", "untrusted", @@ -2322,10 +2399,16 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "sync_wrapper" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" + [[package]] name = "tantivy" version = "0.19.2" -source = "git+https://github.com/apache/incubator-teaclave-crates#2b87d3972d43fa0fee2496dfc703e4f772ffbe9f" +source = "git+https://github.com/apache/incubator-teaclave-crates#9ca099caa1508c3b7ab1a54899f390f9232f10ff" dependencies = [ "aho-corasick 0.7.20", "arc-swap", @@ -2372,12 +2455,12 @@ dependencies = [ [[package]] name = "tantivy-bitpacker" version = "0.3.0" -source = "git+https://github.com/apache/incubator-teaclave-crates#2b87d3972d43fa0fee2496dfc703e4f772ffbe9f" +source = "git+https://github.com/apache/incubator-teaclave-crates#9ca099caa1508c3b7ab1a54899f390f9232f10ff" [[package]] name = "tantivy-common" version = "0.4.0" -source = "git+https://github.com/apache/incubator-teaclave-crates#2b87d3972d43fa0fee2496dfc703e4f772ffbe9f" +source = "git+https://github.com/apache/incubator-teaclave-crates#9ca099caa1508c3b7ab1a54899f390f9232f10ff" dependencies = [ "byteorder", "ownedbytes", @@ -2397,7 +2480,7 @@ dependencies = [ [[package]] name = "tantivy-query-grammar" version = "0.19.0" -source = "git+https://github.com/apache/incubator-teaclave-crates#2b87d3972d43fa0fee2496dfc703e4f772ffbe9f" +source = "git+https://github.com/apache/incubator-teaclave-crates#9ca099caa1508c3b7ab1a54899f390f9232f10ff" dependencies = [ "combine", "once_cell", @@ -2446,6 +2529,8 @@ dependencies = [ "num-bigint 0.2.6", "percent-encoding", "rustls", + "rustls-pemfile", + "rustls-webpki", "serde", "serde_json", "sgx_crypto", @@ -2458,7 +2543,6 @@ dependencies = [ "thiserror", "url", "uuid 0.8.2", - "webpki", "webpki-roots", "yasna", ] @@ -2629,7 +2713,7 @@ dependencies = [ "teaclave_types", "thiserror", "tokio", - "tokio-util 0.7.8", + "tokio-util", "url", ] @@ -2795,10 +2879,10 @@ dependencies = [ "anyhow", "log", "rustls", + "rustls-webpki", "teaclave_attestation", "teaclave_types", "tonic", - "webpki", ] [[package]] @@ -2910,7 +2994,7 @@ version = "0.0.1" dependencies = [ "proc-macro2 1.0.63", "quote 1.0.29", - "syn 1.0.109", + "syn 2.0.23", ] [[package]] @@ -3129,13 +3213,12 @@ dependencies = [ [[package]] name = "tokio-rustls" -version = "0.22.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc6844de72e57df1980054b38be3a9f4702aba4858be64dd700181a8a6d0e1b6" +checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" dependencies = [ "rustls", "tokio", - "webpki", ] [[package]] @@ -3149,20 +3232,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "tokio-util" -version = "0.6.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36943ee01a6d67977dd3f84a5a1d2efeb4ada3a1ae771cadfaa535d9d9fc6507" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "log", - "pin-project-lite", - "tokio", -] - [[package]] name = "tokio-util" version = "0.7.8" @@ -3188,13 +3257,13 @@ dependencies = [ [[package]] name = "tonic" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff08f4649d10a70ffa3522ca559031285d8e421d727ac85c60825761818f5d0a" +version = "0.9.2" +source = "git+https://github.com/apache/incubator-teaclave-crates#9ca099caa1508c3b7ab1a54899f390f9232f10ff" dependencies = [ "async-stream", "async-trait", - "base64 0.13.1", + "axum", + "base64 0.21.2", "bytes", "flate2", "futures-core", @@ -3207,24 +3276,23 @@ dependencies = [ "percent-encoding", "pin-project", "prost", - "prost-derive", + "rustls-pemfile", "tokio", "tokio-rustls", "tokio-stream", - "tokio-util 0.6.10", "tower", "tower-layer", "tower-service", "tracing", - "tracing-futures", ] [[package]] name = "tonic-build" -version = "0.6.2" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9403f1bafde247186684b230dc6f38b5cd514584e8bec1dd32514be4745fa757" +checksum = "a6fdaae4c2c638bb70fe42803a26fbd6fc6ac8c72f5c59f67ecc2a2dcabf4b07" dependencies = [ + "prettyplease", "proc-macro2 1.0.63", "prost-build", "quote 1.0.29", @@ -3245,7 +3313,7 @@ dependencies = [ "rand", "slab", "tokio", - "tokio-util 0.7.8", + "tokio-util", "tower-layer", "tower-service", "tracing", @@ -3270,7 +3338,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" dependencies = [ "cfg-if 1.0.0", - "log", "pin-project-lite", "tracing-attributes", "tracing-core", @@ -3297,16 +3364,6 @@ dependencies = [ "valuable", ] -[[package]] -name = "tracing-futures" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" -dependencies = [ - "pin-project", - "tracing", -] - [[package]] name = "tracing-log" version = "0.1.3" @@ -3363,12 +3420,6 @@ dependencies = [ "tinyvec", ] -[[package]] -name = "unicode-segmentation" -version = "1.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" - [[package]] name = "unicode-xid" version = "0.1.0" @@ -3578,23 +3629,13 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "webpki" -version = "0.21.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea" -dependencies = [ - "ring", - "untrusted", -] - [[package]] name = "webpki-roots" -version = "0.21.1" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aabe153544e473b775453675851ecc86863d2a81d786d741f6b76778f2a48940" +checksum = "b03058f88386e5ff5310d9111d53f48b17d732b401aeb83a8d5190f2ac459338" dependencies = [ - "webpki", + "rustls-webpki", ] [[package]] diff --git a/cmake/tomls/Cargo.sgx_trusted_lib.toml b/cmake/tomls/Cargo.sgx_trusted_lib.toml index 09d72579..495d2dd3 100644 --- a/cmake/tomls/Cargo.sgx_trusted_lib.toml +++ b/cmake/tomls/Cargo.sgx_trusted_lib.toml @@ -71,4 +71,5 @@ rustls = { git = "https://github.com/apache/incubator-teaclave-crates rusty-machine = { git = "https://github.com/apache/incubator-teaclave-crates" } tantivy = { git = "https://github.com/apache/incubator-teaclave-crates" } tokio = { git = "https://github.com/tokio-rs/tokio.git", tag = "tokio-1.24.0"} +tonic = { git = "https://github.com/apache/incubator-teaclave-crates" } yasna = { git = "https://github.com/sccommunity/yasna.rs", branch = "teaclave-sgx" } diff --git a/cmake/tomls/Cargo.sgx_untrusted_app.lock b/cmake/tomls/Cargo.sgx_untrusted_app.lock index 552bb6af..78d216f9 100644 --- a/cmake/tomls/Cargo.sgx_untrusted_app.lock +++ b/cmake/tomls/Cargo.sgx_untrusted_app.lock @@ -106,6 +106,51 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +[[package]] +name = "axum" +version = "0.6.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8175979259124331c1d7bf6586ee7e0da434155e4b2d48ec2c8386281d8df39" +dependencies = [ + "async-trait", + "axum-core", + "bitflags", + "bytes", + "futures-util", + "http", + "http-body", + "hyper", + "itoa", + "matchit", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde", + "sync_wrapper", + "tower", + "tower-layer", + "tower-service", +] + +[[package]] +name = "axum-core" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c" +dependencies = [ + "async-trait", + "bytes", + "futures-util", + "http", + "http-body", + "mime", + "rustversion", + "tower-layer", + "tower-service", +] + [[package]] name = "backtrace" version = "0.3.68" @@ -567,7 +612,7 @@ dependencies = [ "indexmap", "slab", "tokio", - "tokio-util 0.7.8", + "tokio-util", "tracing", ] @@ -590,6 +635,12 @@ dependencies = [ "unicode-segmentation", ] +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + [[package]] name = "hermit-abi" version = "0.1.19" @@ -858,6 +909,12 @@ dependencies = [ "value-bag", ] +[[package]] +name = "matchit" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b87248edafb776e59e6ee64a79086f65890d3510f2c656c000bf2a7e8a0aea40" + [[package]] name = "matrixmultiply" version = "0.1.15" @@ -1163,6 +1220,16 @@ version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +[[package]] +name = "prettyplease" +version = "0.1.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86" +dependencies = [ + "proc-macro2 1.0.63", + "syn 1.0.109", +] + [[package]] name = "proc-macro-error" version = "1.0.4" @@ -1207,9 +1274,9 @@ dependencies = [ [[package]] name = "prost" -version = "0.9.0" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "444879275cb4fd84958b1a1d5420d15e6fcf7c235fe47f053c9c2a80aceb6001" +checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd" dependencies = [ "bytes", "prost-derive", @@ -1217,29 +1284,31 @@ dependencies = [ [[package]] name = "prost-build" -version = "0.9.0" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62941722fb675d463659e49c4f3fe1fe792ff24fe5bbaa9c08cd3b98a1c354f5" +checksum = "119533552c9a7ffacc21e099c24a0ac8bb19c2a2a3f363de84cd9b844feab270" dependencies = [ "bytes", - "heck", + "heck 0.4.1", "itertools 0.10.5", "lazy_static", "log", "multimap", "petgraph", + "prettyplease", "prost", "prost-types", "regex", + "syn 1.0.109", "tempfile", "which", ] [[package]] name = "prost-derive" -version = "0.9.0" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9cc1a3263e07e0bf68e96268f37665207b49560d98739662cdfaae215c720fe" +checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4" dependencies = [ "anyhow", "itertools 0.10.5", @@ -1250,11 +1319,10 @@ dependencies = [ [[package]] name = "prost-types" -version = "0.9.0" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534b7a0e836e3c482d2693070f982e39e7611da9695d4d1f5a4b186b51faef0a" +checksum = "213622a1460818959ac1181aaeb2dc9c7f63df720db7d788b3e24eacd1983e13" dependencies = [ - "bytes", "prost", ] @@ -1516,7 +1584,7 @@ dependencies = [ "serde_urlencoded", "tokio", "tokio-native-tls", - "tokio-util 0.7.8", + "tokio-util", "tower-service", "url", "wasm-bindgen", @@ -1559,7 +1627,7 @@ checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" [[package]] name = "rustface" version = "0.1.7" -source = "git+https://github.com/apache/incubator-teaclave-crates#2b87d3972d43fa0fee2496dfc703e4f772ffbe9f" +source = "git+https://github.com/apache/incubator-teaclave-crates#9ca099caa1508c3b7ab1a54899f390f9232f10ff" dependencies = [ "byteorder", "image", @@ -1584,21 +1652,55 @@ dependencies = [ [[package]] name = "rustls" -version = "0.19.1" +version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7" +checksum = "b19faa85ecb5197342b54f987b142fb3e30d0c90da40f80ef4fa9a726e6676ed" dependencies = [ - "base64 0.13.1", "log", "ring", + "rustls-webpki 0.101.1", "sct", - "webpki", ] +[[package]] +name = "rustls-pemfile" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2" +dependencies = [ + "base64 0.21.2", +] + +[[package]] +name = "rustls-webpki" +version = "0.100.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6207cd5ed3d8dca7816f8f3725513a34609c0c765bf652b8c3cb4cfd87db46b" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "rustls-webpki" +version = "0.101.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15f36a6828982f422756984e47912a7a51dcbc2a197aa791158f8ca61cd8204e" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "rustversion" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f3208ce4d8448b3f3e7d168a73f5e0c43a61e32930de3bceeccedb388b6bf06" + [[package]] name = "rusty-machine" version = "0.5.4" -source = "git+https://github.com/apache/incubator-teaclave-crates#2b87d3972d43fa0fee2496dfc703e4f772ffbe9f" +source = "git+https://github.com/apache/incubator-teaclave-crates#9ca099caa1508c3b7ab1a54899f390f9232f10ff" dependencies = [ "num 0.1.42", "rand 0.8.5", @@ -1625,9 +1727,9 @@ dependencies = [ [[package]] name = "sct" -version = "0.6.1" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b362b83898e0e69f38515b82ee15aa80636befe47c3b6d3d89a911e78fc228ce" +checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" dependencies = [ "ring", "untrusted", @@ -1976,7 +2078,7 @@ version = "0.4.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0" dependencies = [ - "heck", + "heck 0.3.3", "proc-macro-error", "proc-macro2 1.0.63", "quote 1.0.29", @@ -2084,6 +2186,12 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "sync_wrapper" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" + [[package]] name = "teaclave_access_control_service" version = "0.6.0" @@ -2111,6 +2219,8 @@ dependencies = [ "num-bigint 0.2.6", "percent-encoding", "rustls", + "rustls-pemfile", + "rustls-webpki 0.100.1", "serde", "serde_json", "sgx_crypto", @@ -2123,7 +2233,6 @@ dependencies = [ "thiserror", "url", "uuid", - "webpki", "webpki-roots", "yasna", ] @@ -2295,7 +2404,7 @@ dependencies = [ "teaclave_types", "thiserror", "tokio", - "tokio-util 0.7.8", + "tokio-util", "url", ] @@ -2412,10 +2521,10 @@ dependencies = [ "anyhow", "log", "rustls", + "rustls-webpki 0.100.1", "teaclave_attestation", "teaclave_types", "tonic", - "webpki", ] [[package]] @@ -2517,7 +2626,7 @@ version = "0.0.1" dependencies = [ "proc-macro2 1.0.63", "quote 1.0.29", - "syn 1.0.109", + "syn 2.0.23", ] [[package]] @@ -2691,13 +2800,12 @@ dependencies = [ [[package]] name = "tokio-rustls" -version = "0.22.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc6844de72e57df1980054b38be3a9f4702aba4858be64dd700181a8a6d0e1b6" +checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" dependencies = [ "rustls", "tokio", - "webpki", ] [[package]] @@ -2711,20 +2819,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "tokio-util" -version = "0.6.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36943ee01a6d67977dd3f84a5a1d2efeb4ada3a1ae771cadfaa535d9d9fc6507" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "log", - "pin-project-lite", - "tokio", -] - [[package]] name = "tokio-util" version = "0.7.8" @@ -2750,13 +2844,13 @@ dependencies = [ [[package]] name = "tonic" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff08f4649d10a70ffa3522ca559031285d8e421d727ac85c60825761818f5d0a" +version = "0.9.2" +source = "git+https://github.com/apache/incubator-teaclave-crates#9ca099caa1508c3b7ab1a54899f390f9232f10ff" dependencies = [ "async-stream", "async-trait", - "base64 0.13.1", + "axum", + "base64 0.21.2", "bytes", "flate2", "futures-core", @@ -2769,24 +2863,23 @@ dependencies = [ "percent-encoding", "pin-project", "prost", - "prost-derive", + "rustls-pemfile", "tokio", "tokio-rustls", "tokio-stream", - "tokio-util 0.6.10", "tower", "tower-layer", "tower-service", "tracing", - "tracing-futures", ] [[package]] name = "tonic-build" -version = "0.6.2" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9403f1bafde247186684b230dc6f38b5cd514584e8bec1dd32514be4745fa757" +checksum = "a6fdaae4c2c638bb70fe42803a26fbd6fc6ac8c72f5c59f67ecc2a2dcabf4b07" dependencies = [ + "prettyplease", "proc-macro2 1.0.63", "prost-build", "quote 1.0.29", @@ -2807,7 +2900,7 @@ dependencies = [ "rand 0.8.5", "slab", "tokio", - "tokio-util 0.7.8", + "tokio-util", "tower-layer", "tower-service", "tracing", @@ -2832,7 +2925,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" dependencies = [ "cfg-if 1.0.0", - "log", "pin-project-lite", "tracing-attributes", "tracing-core", @@ -2858,16 +2950,6 @@ dependencies = [ "once_cell", ] -[[package]] -name = "tracing-futures" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" -dependencies = [ - "pin-project", - "tracing", -] - [[package]] name = "try-lock" version = "0.2.4" @@ -3100,23 +3182,13 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "webpki" -version = "0.21.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea" -dependencies = [ - "ring", - "untrusted", -] - [[package]] name = "webpki-roots" -version = "0.21.1" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aabe153544e473b775453675851ecc86863d2a81d786d741f6b76778f2a48940" +checksum = "b03058f88386e5ff5310d9111d53f48b17d732b401aeb83a8d5190f2ac459338" dependencies = [ - "webpki", + "rustls-webpki 0.100.1", ] [[package]] diff --git a/cmake/tomls/Cargo.sgx_untrusted_app.toml b/cmake/tomls/Cargo.sgx_untrusted_app.toml index c83473d6..e27db6c0 100644 --- a/cmake/tomls/Cargo.sgx_untrusted_app.toml +++ b/cmake/tomls/Cargo.sgx_untrusted_app.toml @@ -47,4 +47,5 @@ sgx_types = { path = "../../../third_party/rust-sgx-sdk/sgx_types" } sgx_urts = { path = "../../../third_party/rust-sgx-sdk/sgx_urts" } rustface = { git = "https://github.com/apache/incubator-teaclave-crates" } -rusty-machine = { git = "https://github.com/apache/incubator-teaclave-crates" } \ No newline at end of file +rusty-machine = { git = "https://github.com/apache/incubator-teaclave-crates" } +tonic = { git = "https://github.com/apache/incubator-teaclave-crates" } \ No newline at end of file diff --git a/cmake/tomls/Cargo.unix_app.lock b/cmake/tomls/Cargo.unix_app.lock index 6e657f92..c5f79ff3 100644 --- a/cmake/tomls/Cargo.unix_app.lock +++ b/cmake/tomls/Cargo.unix_app.lock @@ -147,6 +147,51 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +[[package]] +name = "axum" +version = "0.6.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8175979259124331c1d7bf6586ee7e0da434155e4b2d48ec2c8386281d8df39" +dependencies = [ + "async-trait", + "axum-core", + "bitflags", + "bytes", + "futures-util", + "http", + "http-body", + "hyper", + "itoa", + "matchit", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde", + "sync_wrapper", + "tower", + "tower-layer", + "tower-service", +] + +[[package]] +name = "axum-core" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c" +dependencies = [ + "async-trait", + "bytes", + "futures-util", + "http", + "http-body", + "mime", + "rustversion", + "tower-layer", + "tower-service", +] + [[package]] name = "backtrace" version = "0.3.68" @@ -679,7 +724,7 @@ dependencies = [ "indexmap 1.9.3", "slab", "tokio", - "tokio-util 0.7.8", + "tokio-util", "tracing", ] @@ -708,6 +753,12 @@ dependencies = [ "unicode-segmentation", ] +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + [[package]] name = "hermit-abi" version = "0.1.19" @@ -1019,6 +1070,12 @@ dependencies = [ "regex-automata", ] +[[package]] +name = "matchit" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b87248edafb776e59e6ee64a79086f65890d3510f2c656c000bf2a7e8a0aea40" + [[package]] name = "memchr" version = "2.5.0" @@ -1067,7 +1124,7 @@ dependencies = [ "mime", "spin 0.9.8", "tokio", - "tokio-util 0.7.8", + "tokio-util", "version_check", ] @@ -1277,6 +1334,16 @@ version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +[[package]] +name = "prettyplease" +version = "0.1.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86" +dependencies = [ + "proc-macro2", + "syn 1.0.109", +] + [[package]] name = "proc-macro-error" version = "1.0.4" @@ -1338,9 +1405,9 @@ dependencies = [ [[package]] name = "prost" -version = "0.9.0" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "444879275cb4fd84958b1a1d5420d15e6fcf7c235fe47f053c9c2a80aceb6001" +checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd" dependencies = [ "bytes", "prost-derive", @@ -1348,29 +1415,31 @@ dependencies = [ [[package]] name = "prost-build" -version = "0.9.0" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62941722fb675d463659e49c4f3fe1fe792ff24fe5bbaa9c08cd3b98a1c354f5" +checksum = "119533552c9a7ffacc21e099c24a0ac8bb19c2a2a3f363de84cd9b844feab270" dependencies = [ "bytes", - "heck", + "heck 0.4.1", "itertools", "lazy_static", "log", "multimap", "petgraph", + "prettyplease", "prost", "prost-types", "regex", + "syn 1.0.109", "tempfile", "which", ] [[package]] name = "prost-derive" -version = "0.9.0" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9cc1a3263e07e0bf68e96268f37665207b49560d98739662cdfaae215c720fe" +checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4" dependencies = [ "anyhow", "itertools", @@ -1381,11 +1450,10 @@ dependencies = [ [[package]] name = "prost-types" -version = "0.9.0" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534b7a0e836e3c482d2693070f982e39e7611da9695d4d1f5a4b186b51faef0a" +checksum = "213622a1460818959ac1181aaeb2dc9c7f63df720db7d788b3e24eacd1983e13" dependencies = [ - "bytes", "prost", ] @@ -1550,7 +1618,7 @@ dependencies = [ "time 0.3.22", "tokio", "tokio-stream", - "tokio-util 0.7.8", + "tokio-util", "ubyte", "version_check", "yansi", @@ -1622,27 +1690,26 @@ dependencies = [ [[package]] name = "rustls" -version = "0.19.1" +version = "0.20.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7" +checksum = "fff78fc74d175294f4e83b28343315ffcfb114b156f0185e9741cb5570f50e2f" dependencies = [ - "base64 0.13.1", "log", "ring", - "sct 0.6.1", - "webpki 0.21.4", + "sct", + "webpki", ] [[package]] name = "rustls" -version = "0.20.8" +version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fff78fc74d175294f4e83b28343315ffcfb114b156f0185e9741cb5570f50e2f" +checksum = "b19faa85ecb5197342b54f987b142fb3e30d0c90da40f80ef4fa9a726e6676ed" dependencies = [ "log", "ring", - "sct 0.7.0", - "webpki 0.22.0", + "rustls-webpki 0.101.1", + "sct", ] [[package]] @@ -1654,6 +1721,26 @@ dependencies = [ "base64 0.21.2", ] +[[package]] +name = "rustls-webpki" +version = "0.100.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6207cd5ed3d8dca7816f8f3725513a34609c0c765bf652b8c3cb4cfd87db46b" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "rustls-webpki" +version = "0.101.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15f36a6828982f422756984e47912a7a51dcbc2a197aa791158f8ca61cd8204e" +dependencies = [ + "ring", + "untrusted", +] + [[package]] name = "rustversion" version = "1.0.13" @@ -1678,16 +1765,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" -[[package]] -name = "sct" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b362b83898e0e69f38515b82ee15aa80636befe47c3b6d3d89a911e78fc228ce" -dependencies = [ - "ring", - "untrusted", -] - [[package]] name = "sct" version = "0.7.0" @@ -2022,7 +2099,7 @@ version = "0.4.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0" dependencies = [ - "heck", + "heck 0.3.3", "proc-macro-error", "proc-macro2", "quote", @@ -2057,6 +2134,12 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "sync_wrapper" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" + [[package]] name = "teaclave_attestation" version = "0.6.0" @@ -2072,7 +2155,9 @@ dependencies = [ "log", "num-bigint", "percent-encoding", - "rustls 0.19.1", + "rustls 0.21.3", + "rustls-pemfile", + "rustls-webpki 0.100.1", "serde", "serde_json", "sgx_crypto", @@ -2085,7 +2170,6 @@ dependencies = [ "thiserror", "url", "uuid", - "webpki 0.21.4", "webpki-roots", "yasna", ] @@ -2099,12 +2183,12 @@ dependencies = [ "hex", "http", "pem", - "rustls 0.19.1", + "rustls 0.21.3", + "rustls-webpki 0.100.1", "structopt", "teaclave_attestation", "teaclave_crypto", "teaclave_types", - "webpki 0.21.4", "webpki-roots", ] @@ -2197,11 +2281,11 @@ version = "0.6.0" dependencies = [ "anyhow", "log", - "rustls 0.19.1", + "rustls 0.21.3", + "rustls-webpki 0.100.1", "teaclave_attestation", "teaclave_types", "tonic", - "webpki 0.21.4", ] [[package]] @@ -2220,7 +2304,7 @@ version = "0.0.1" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.23", ] [[package]] @@ -2403,24 +2487,23 @@ dependencies = [ [[package]] name = "tokio-rustls" -version = "0.22.0" +version = "0.23.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc6844de72e57df1980054b38be3a9f4702aba4858be64dd700181a8a6d0e1b6" +checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" dependencies = [ - "rustls 0.19.1", + "rustls 0.20.8", "tokio", - "webpki 0.21.4", + "webpki", ] [[package]] name = "tokio-rustls" -version = "0.23.4" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" +checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" dependencies = [ - "rustls 0.20.8", + "rustls 0.21.3", "tokio", - "webpki 0.22.0", ] [[package]] @@ -2434,20 +2517,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "tokio-util" -version = "0.6.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36943ee01a6d67977dd3f84a5a1d2efeb4ada3a1ae771cadfaa535d9d9fc6507" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "log", - "pin-project-lite", - "tokio", -] - [[package]] name = "tokio-util" version = "0.7.8" @@ -2507,13 +2576,13 @@ dependencies = [ [[package]] name = "tonic" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff08f4649d10a70ffa3522ca559031285d8e421d727ac85c60825761818f5d0a" +version = "0.9.2" +source = "git+https://github.com/apache/incubator-teaclave-crates#9ca099caa1508c3b7ab1a54899f390f9232f10ff" dependencies = [ "async-stream", "async-trait", - "base64 0.13.1", + "axum", + "base64 0.21.2", "bytes", "flate2", "futures-core", @@ -2526,24 +2595,23 @@ dependencies = [ "percent-encoding", "pin-project", "prost", - "prost-derive", + "rustls-pemfile", "tokio", - "tokio-rustls 0.22.0", + "tokio-rustls 0.24.1", "tokio-stream", - "tokio-util 0.6.10", "tower", "tower-layer", "tower-service", "tracing", - "tracing-futures", ] [[package]] name = "tonic-build" -version = "0.6.2" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9403f1bafde247186684b230dc6f38b5cd514584e8bec1dd32514be4745fa757" +checksum = "a6fdaae4c2c638bb70fe42803a26fbd6fc6ac8c72f5c59f67ecc2a2dcabf4b07" dependencies = [ + "prettyplease", "proc-macro2", "prost-build", "quote", @@ -2564,7 +2632,7 @@ dependencies = [ "rand", "slab", "tokio", - "tokio-util 0.7.8", + "tokio-util", "tower-layer", "tower-service", "tracing", @@ -2589,7 +2657,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" dependencies = [ "cfg-if 1.0.0", - "log", "pin-project-lite", "tracing-attributes", "tracing-core", @@ -2616,16 +2683,6 @@ dependencies = [ "valuable", ] -[[package]] -name = "tracing-futures" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" -dependencies = [ - "pin-project", - "tracing", -] - [[package]] name = "tracing-log" version = "0.1.3" @@ -2867,16 +2924,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "webpki" -version = "0.21.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea" -dependencies = [ - "ring", - "untrusted", -] - [[package]] name = "webpki" version = "0.22.0" @@ -2889,11 +2936,11 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.21.1" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aabe153544e473b775453675851ecc86863d2a81d786d741f6b76778f2a48940" +checksum = "b03058f88386e5ff5310d9111d53f48b17d732b401aeb83a8d5190f2ac459338" dependencies = [ - "webpki 0.21.4", + "rustls-webpki 0.100.1", ] [[package]] diff --git a/cmake/tomls/Cargo.unix_app.toml b/cmake/tomls/Cargo.unix_app.toml index c9cc713b..2efa9e7a 100644 --- a/cmake/tomls/Cargo.unix_app.toml +++ b/cmake/tomls/Cargo.unix_app.toml @@ -30,6 +30,7 @@ exclude = [ ] [patch.crates-io] +tonic = { git = "https://github.com/apache/incubator-teaclave-crates" } sgx_cov = { path = "../../../third_party/rust-sgx-sdk/sgx_tests/cov" } sgx_crypto = { path = "../../../third_party/rust-sgx-sdk/sgx_crypto" } diff --git a/examples/rust/builtin_echo/Cargo.lock b/examples/rust/builtin_echo/Cargo.lock index c8a3aeb4..752b81d4 100644 --- a/examples/rust/builtin_echo/Cargo.lock +++ b/examples/rust/builtin_echo/Cargo.lock @@ -68,6 +68,51 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +[[package]] +name = "axum" +version = "0.6.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8175979259124331c1d7bf6586ee7e0da434155e4b2d48ec2c8386281d8df39" +dependencies = [ + "async-trait", + "axum-core", + "bitflags", + "bytes", + "futures-util", + "http", + "http-body", + "hyper", + "itoa", + "matchit", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde", + "sync_wrapper", + "tower", + "tower-layer", + "tower-service", +] + +[[package]] +name = "axum-core" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c" +dependencies = [ + "async-trait", + "bytes", + "futures-util", + "http", + "http-body", + "mime", + "rustversion", + "tower-layer", + "tower-service", +] + [[package]] name = "base64" version = "0.11.0" @@ -80,6 +125,12 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" +[[package]] +name = "base64" +version = "0.21.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d" + [[package]] name = "bit-vec" version = "0.6.3" @@ -281,7 +332,7 @@ dependencies = [ "indexmap", "slab", "tokio", - "tokio-util 0.7.8", + "tokio-util", "tracing", ] @@ -293,12 +344,9 @@ checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" [[package]] name = "heck" -version = "0.3.3" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" -dependencies = [ - "unicode-segmentation", -] +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] name = "hermit-abi" @@ -479,12 +527,24 @@ version = "0.4.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "518ef76f2f87365916b142844c16d8fefd85039bc5699050210a7778ee1cd1de" +[[package]] +name = "matchit" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b87248edafb776e59e6ee64a79086f65890d3510f2c656c000bf2a7e8a0aea40" + [[package]] name = "memchr" version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + [[package]] name = "miniz_oxide" version = "0.7.1" @@ -622,6 +682,16 @@ version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +[[package]] +name = "prettyplease" +version = "0.1.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86" +dependencies = [ + "proc-macro2", + "syn 1.0.109", +] + [[package]] name = "proc-macro2" version = "1.0.59" @@ -633,9 +703,9 @@ dependencies = [ [[package]] name = "prost" -version = "0.9.0" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "444879275cb4fd84958b1a1d5420d15e6fcf7c235fe47f053c9c2a80aceb6001" +checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd" dependencies = [ "bytes", "prost-derive", @@ -643,9 +713,9 @@ dependencies = [ [[package]] name = "prost-build" -version = "0.9.0" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62941722fb675d463659e49c4f3fe1fe792ff24fe5bbaa9c08cd3b98a1c354f5" +checksum = "119533552c9a7ffacc21e099c24a0ac8bb19c2a2a3f363de84cd9b844feab270" dependencies = [ "bytes", "heck", @@ -654,18 +724,20 @@ dependencies = [ "log", "multimap", "petgraph", + "prettyplease", "prost", "prost-types", "regex", + "syn 1.0.109", "tempfile", "which", ] [[package]] name = "prost-derive" -version = "0.9.0" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9cc1a3263e07e0bf68e96268f37665207b49560d98739662cdfaae215c720fe" +checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4" dependencies = [ "anyhow", "itertools", @@ -676,11 +748,10 @@ dependencies = [ [[package]] name = "prost-types" -version = "0.9.0" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534b7a0e836e3c482d2693070f982e39e7611da9695d4d1f5a4b186b51faef0a" +checksum = "213622a1460818959ac1181aaeb2dc9c7f63df720db7d788b3e24eacd1983e13" dependencies = [ - "bytes", "prost", ] @@ -789,17 +860,51 @@ dependencies = [ [[package]] name = "rustls" -version = "0.19.1" +version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7" +checksum = "b19faa85ecb5197342b54f987b142fb3e30d0c90da40f80ef4fa9a726e6676ed" dependencies = [ - "base64 0.13.1", "log", "ring", + "rustls-webpki 0.101.1", "sct", - "webpki", ] +[[package]] +name = "rustls-pemfile" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2" +dependencies = [ + "base64 0.21.2", +] + +[[package]] +name = "rustls-webpki" +version = "0.100.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6207cd5ed3d8dca7816f8f3725513a34609c0c765bf652b8c3cb4cfd87db46b" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "rustls-webpki" +version = "0.101.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15f36a6828982f422756984e47912a7a51dcbc2a197aa791158f8ca61cd8204e" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "rustversion" +version = "1.0.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc31bd9b61a32c31f9650d18add92aa83a49ba979c143eefd27fe7177b05bd5f" + [[package]] name = "ryu" version = "1.0.13" @@ -808,9 +913,9 @@ checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041" [[package]] name = "sct" -version = "0.6.1" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b362b83898e0e69f38515b82ee15aa80636befe47c3b6d3d89a911e78fc228ce" +checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" dependencies = [ "ring", "untrusted", @@ -968,6 +1073,12 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "sync_wrapper" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" + [[package]] name = "teaclave_attestation" version = "0.6.0" @@ -983,6 +1094,8 @@ dependencies = [ "num-bigint", "percent-encoding", "rustls", + "rustls-pemfile", + "rustls-webpki 0.100.1", "serde", "serde_json", "sgx_types", @@ -991,7 +1104,6 @@ dependencies = [ "thiserror", "url", "uuid", - "webpki", "webpki-roots", "yasna", ] @@ -1062,10 +1174,10 @@ dependencies = [ "anyhow", "log", "rustls", + "rustls-webpki 0.100.1", "teaclave_attestation", "teaclave_types", "tonic", - "webpki", ] [[package]] @@ -1178,13 +1290,12 @@ dependencies = [ [[package]] name = "tokio-rustls" -version = "0.22.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc6844de72e57df1980054b38be3a9f4702aba4858be64dd700181a8a6d0e1b6" +checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" dependencies = [ "rustls", "tokio", - "webpki", ] [[package]] @@ -1198,20 +1309,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "tokio-util" -version = "0.6.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36943ee01a6d67977dd3f84a5a1d2efeb4ada3a1ae771cadfaa535d9d9fc6507" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "log", - "pin-project-lite", - "tokio", -] - [[package]] name = "tokio-util" version = "0.7.8" @@ -1237,13 +1334,13 @@ dependencies = [ [[package]] name = "tonic" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff08f4649d10a70ffa3522ca559031285d8e421d727ac85c60825761818f5d0a" +version = "0.9.2" +source = "git+https://github.com/apache/incubator-teaclave-crates#9ca099caa1508c3b7ab1a54899f390f9232f10ff" dependencies = [ "async-stream", "async-trait", - "base64 0.13.1", + "axum", + "base64 0.21.2", "bytes", "flate2", "futures-core", @@ -1256,24 +1353,23 @@ dependencies = [ "percent-encoding", "pin-project", "prost", - "prost-derive", + "rustls-pemfile", "tokio", "tokio-rustls", "tokio-stream", - "tokio-util 0.6.10", "tower", "tower-layer", "tower-service", "tracing", - "tracing-futures", ] [[package]] name = "tonic-build" -version = "0.6.2" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9403f1bafde247186684b230dc6f38b5cd514584e8bec1dd32514be4745fa757" +checksum = "a6fdaae4c2c638bb70fe42803a26fbd6fc6ac8c72f5c59f67ecc2a2dcabf4b07" dependencies = [ + "prettyplease", "proc-macro2", "prost-build", "quote", @@ -1294,7 +1390,7 @@ dependencies = [ "rand", "slab", "tokio", - "tokio-util 0.7.8", + "tokio-util", "tower-layer", "tower-service", "tracing", @@ -1319,7 +1415,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" dependencies = [ "cfg-if 1.0.0", - "log", "pin-project-lite", "tracing-attributes", "tracing-core", @@ -1345,16 +1440,6 @@ dependencies = [ "once_cell", ] -[[package]] -name = "tracing-futures" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" -dependencies = [ - "pin-project", - "tracing", -] - [[package]] name = "try-lock" version = "0.2.4" @@ -1382,12 +1467,6 @@ dependencies = [ "tinyvec", ] -[[package]] -name = "unicode-segmentation" -version = "1.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" - [[package]] name = "untrusted" version = "0.7.1" @@ -1497,23 +1576,13 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "webpki" -version = "0.21.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea" -dependencies = [ - "ring", - "untrusted", -] - [[package]] name = "webpki-roots" -version = "0.21.1" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aabe153544e473b775453675851ecc86863d2a81d786d741f6b76778f2a48940" +checksum = "b03058f88386e5ff5310d9111d53f48b17d732b401aeb83a8d5190f2ac459338" dependencies = [ - "webpki", + "rustls-webpki 0.100.1", ] [[package]] diff --git a/examples/rust/builtin_echo/Cargo.toml b/examples/rust/builtin_echo/Cargo.toml index 28632f0b..053f74a8 100644 --- a/examples/rust/builtin_echo/Cargo.toml +++ b/examples/rust/builtin_echo/Cargo.toml @@ -30,5 +30,7 @@ pem = "0.7.0" [patch.crates-io] h2 = { git = "https://github.com/hyperium/h2", tag = "v0.3.19" } +tonic = { git = "https://github.com/apache/incubator-teaclave-crates" } + sgx_tprotected_fs = { path = "../../../third_party/rust-sgx-sdk/sgx_protected_fs/tfs" } sgx_types = { path = "../../../third_party/rust-sgx-sdk/sgx_types" } diff --git a/examples/rust/builtin_ordered_set_intersect/Cargo.lock b/examples/rust/builtin_ordered_set_intersect/Cargo.lock index 20f9743f..aaf29227 100644 --- a/examples/rust/builtin_ordered_set_intersect/Cargo.lock +++ b/examples/rust/builtin_ordered_set_intersect/Cargo.lock @@ -68,6 +68,51 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +[[package]] +name = "axum" +version = "0.6.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8175979259124331c1d7bf6586ee7e0da434155e4b2d48ec2c8386281d8df39" +dependencies = [ + "async-trait", + "axum-core", + "bitflags", + "bytes", + "futures-util", + "http", + "http-body", + "hyper", + "itoa", + "matchit", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde", + "sync_wrapper", + "tower", + "tower-layer", + "tower-service", +] + +[[package]] +name = "axum-core" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c" +dependencies = [ + "async-trait", + "bytes", + "futures-util", + "http", + "http-body", + "mime", + "rustversion", + "tower-layer", + "tower-service", +] + [[package]] name = "base64" version = "0.11.0" @@ -80,6 +125,12 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" +[[package]] +name = "base64" +version = "0.21.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d" + [[package]] name = "bit-vec" version = "0.6.3" @@ -281,7 +332,7 @@ dependencies = [ "indexmap", "slab", "tokio", - "tokio-util 0.7.8", + "tokio-util", "tracing", ] @@ -293,12 +344,9 @@ checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" [[package]] name = "heck" -version = "0.3.3" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" -dependencies = [ - "unicode-segmentation", -] +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] name = "hermit-abi" @@ -479,12 +527,24 @@ version = "0.4.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "518ef76f2f87365916b142844c16d8fefd85039bc5699050210a7778ee1cd1de" +[[package]] +name = "matchit" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b87248edafb776e59e6ee64a79086f65890d3510f2c656c000bf2a7e8a0aea40" + [[package]] name = "memchr" version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + [[package]] name = "miniz_oxide" version = "0.7.1" @@ -622,6 +682,16 @@ version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +[[package]] +name = "prettyplease" +version = "0.1.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86" +dependencies = [ + "proc-macro2", + "syn 1.0.109", +] + [[package]] name = "proc-macro2" version = "1.0.59" @@ -633,9 +703,9 @@ dependencies = [ [[package]] name = "prost" -version = "0.9.0" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "444879275cb4fd84958b1a1d5420d15e6fcf7c235fe47f053c9c2a80aceb6001" +checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd" dependencies = [ "bytes", "prost-derive", @@ -643,9 +713,9 @@ dependencies = [ [[package]] name = "prost-build" -version = "0.9.0" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62941722fb675d463659e49c4f3fe1fe792ff24fe5bbaa9c08cd3b98a1c354f5" +checksum = "119533552c9a7ffacc21e099c24a0ac8bb19c2a2a3f363de84cd9b844feab270" dependencies = [ "bytes", "heck", @@ -654,18 +724,20 @@ dependencies = [ "log", "multimap", "petgraph", + "prettyplease", "prost", "prost-types", "regex", + "syn 1.0.109", "tempfile", "which", ] [[package]] name = "prost-derive" -version = "0.9.0" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9cc1a3263e07e0bf68e96268f37665207b49560d98739662cdfaae215c720fe" +checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4" dependencies = [ "anyhow", "itertools", @@ -676,11 +748,10 @@ dependencies = [ [[package]] name = "prost-types" -version = "0.9.0" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534b7a0e836e3c482d2693070f982e39e7611da9695d4d1f5a4b186b51faef0a" +checksum = "213622a1460818959ac1181aaeb2dc9c7f63df720db7d788b3e24eacd1983e13" dependencies = [ - "bytes", "prost", ] @@ -789,17 +860,51 @@ dependencies = [ [[package]] name = "rustls" -version = "0.19.1" +version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7" +checksum = "b19faa85ecb5197342b54f987b142fb3e30d0c90da40f80ef4fa9a726e6676ed" dependencies = [ - "base64 0.13.1", "log", "ring", + "rustls-webpki 0.101.1", "sct", - "webpki", ] +[[package]] +name = "rustls-pemfile" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2" +dependencies = [ + "base64 0.21.2", +] + +[[package]] +name = "rustls-webpki" +version = "0.100.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6207cd5ed3d8dca7816f8f3725513a34609c0c765bf652b8c3cb4cfd87db46b" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "rustls-webpki" +version = "0.101.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15f36a6828982f422756984e47912a7a51dcbc2a197aa791158f8ca61cd8204e" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "rustversion" +version = "1.0.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc31bd9b61a32c31f9650d18add92aa83a49ba979c143eefd27fe7177b05bd5f" + [[package]] name = "ryu" version = "1.0.13" @@ -808,9 +913,9 @@ checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041" [[package]] name = "sct" -version = "0.6.1" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b362b83898e0e69f38515b82ee15aa80636befe47c3b6d3d89a911e78fc228ce" +checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" dependencies = [ "ring", "untrusted", @@ -968,6 +1073,12 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "sync_wrapper" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" + [[package]] name = "teaclave_attestation" version = "0.6.0" @@ -983,6 +1094,8 @@ dependencies = [ "num-bigint", "percent-encoding", "rustls", + "rustls-pemfile", + "rustls-webpki 0.100.1", "serde", "serde_json", "sgx_types", @@ -991,7 +1104,6 @@ dependencies = [ "thiserror", "url", "uuid", - "webpki", "webpki-roots", "yasna", ] @@ -1062,10 +1174,10 @@ dependencies = [ "anyhow", "log", "rustls", + "rustls-webpki 0.100.1", "teaclave_attestation", "teaclave_types", "tonic", - "webpki", ] [[package]] @@ -1178,13 +1290,12 @@ dependencies = [ [[package]] name = "tokio-rustls" -version = "0.22.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc6844de72e57df1980054b38be3a9f4702aba4858be64dd700181a8a6d0e1b6" +checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" dependencies = [ "rustls", "tokio", - "webpki", ] [[package]] @@ -1198,20 +1309,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "tokio-util" -version = "0.6.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36943ee01a6d67977dd3f84a5a1d2efeb4ada3a1ae771cadfaa535d9d9fc6507" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "log", - "pin-project-lite", - "tokio", -] - [[package]] name = "tokio-util" version = "0.7.8" @@ -1237,13 +1334,13 @@ dependencies = [ [[package]] name = "tonic" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff08f4649d10a70ffa3522ca559031285d8e421d727ac85c60825761818f5d0a" +version = "0.9.2" +source = "git+https://github.com/apache/incubator-teaclave-crates#9ca099caa1508c3b7ab1a54899f390f9232f10ff" dependencies = [ "async-stream", "async-trait", - "base64 0.13.1", + "axum", + "base64 0.21.2", "bytes", "flate2", "futures-core", @@ -1256,24 +1353,23 @@ dependencies = [ "percent-encoding", "pin-project", "prost", - "prost-derive", + "rustls-pemfile", "tokio", "tokio-rustls", "tokio-stream", - "tokio-util 0.6.10", "tower", "tower-layer", "tower-service", "tracing", - "tracing-futures", ] [[package]] name = "tonic-build" -version = "0.6.2" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9403f1bafde247186684b230dc6f38b5cd514584e8bec1dd32514be4745fa757" +checksum = "a6fdaae4c2c638bb70fe42803a26fbd6fc6ac8c72f5c59f67ecc2a2dcabf4b07" dependencies = [ + "prettyplease", "proc-macro2", "prost-build", "quote", @@ -1294,7 +1390,7 @@ dependencies = [ "rand", "slab", "tokio", - "tokio-util 0.7.8", + "tokio-util", "tower-layer", "tower-service", "tracing", @@ -1319,7 +1415,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" dependencies = [ "cfg-if 1.0.0", - "log", "pin-project-lite", "tracing-attributes", "tracing-core", @@ -1345,16 +1440,6 @@ dependencies = [ "once_cell", ] -[[package]] -name = "tracing-futures" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" -dependencies = [ - "pin-project", - "tracing", -] - [[package]] name = "try-lock" version = "0.2.4" @@ -1382,12 +1467,6 @@ dependencies = [ "tinyvec", ] -[[package]] -name = "unicode-segmentation" -version = "1.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" - [[package]] name = "untrusted" version = "0.7.1" @@ -1497,23 +1576,13 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "webpki" -version = "0.21.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea" -dependencies = [ - "ring", - "untrusted", -] - [[package]] name = "webpki-roots" -version = "0.21.1" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aabe153544e473b775453675851ecc86863d2a81d786d741f6b76778f2a48940" +checksum = "b03058f88386e5ff5310d9111d53f48b17d732b401aeb83a8d5190f2ac459338" dependencies = [ - "webpki", + "rustls-webpki 0.100.1", ] [[package]] diff --git a/examples/rust/builtin_ordered_set_intersect/Cargo.toml b/examples/rust/builtin_ordered_set_intersect/Cargo.toml index e8a7b46c..6bb02d13 100644 --- a/examples/rust/builtin_ordered_set_intersect/Cargo.toml +++ b/examples/rust/builtin_ordered_set_intersect/Cargo.toml @@ -30,5 +30,7 @@ pem = "0.7.0" [patch.crates-io] h2 = { git = "https://github.com/hyperium/h2", tag = "v0.3.19" } +tonic = { git = "https://github.com/apache/incubator-teaclave-crates" } + sgx_tprotected_fs = { path = "../../../third_party/rust-sgx-sdk/sgx_protected_fs/tfs" } sgx_types = { path = "../../../third_party/rust-sgx-sdk/sgx_types" } diff --git a/examples/rust/sequential_functions/Cargo.lock b/examples/rust/sequential_functions/Cargo.lock index 8fc8fa73..db3ce3d5 100644 --- a/examples/rust/sequential_functions/Cargo.lock +++ b/examples/rust/sequential_functions/Cargo.lock @@ -68,6 +68,51 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +[[package]] +name = "axum" +version = "0.6.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8175979259124331c1d7bf6586ee7e0da434155e4b2d48ec2c8386281d8df39" +dependencies = [ + "async-trait", + "axum-core", + "bitflags", + "bytes", + "futures-util", + "http", + "http-body", + "hyper", + "itoa", + "matchit", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde", + "sync_wrapper", + "tower", + "tower-layer", + "tower-service", +] + +[[package]] +name = "axum-core" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c" +dependencies = [ + "async-trait", + "bytes", + "futures-util", + "http", + "http-body", + "mime", + "rustversion", + "tower-layer", + "tower-service", +] + [[package]] name = "base64" version = "0.11.0" @@ -80,6 +125,12 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" +[[package]] +name = "base64" +version = "0.21.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d" + [[package]] name = "bit-vec" version = "0.6.3" @@ -272,7 +323,7 @@ dependencies = [ "indexmap", "slab", "tokio", - "tokio-util 0.7.8", + "tokio-util", "tracing", ] @@ -284,12 +335,9 @@ checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" [[package]] name = "heck" -version = "0.3.3" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" -dependencies = [ - "unicode-segmentation", -] +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] name = "hermit-abi" @@ -470,12 +518,24 @@ version = "0.4.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4" +[[package]] +name = "matchit" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b87248edafb776e59e6ee64a79086f65890d3510f2c656c000bf2a7e8a0aea40" + [[package]] name = "memchr" version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + [[package]] name = "miniz_oxide" version = "0.7.1" @@ -613,6 +673,16 @@ version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +[[package]] +name = "prettyplease" +version = "0.1.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86" +dependencies = [ + "proc-macro2", + "syn 1.0.109", +] + [[package]] name = "proc-macro2" version = "1.0.63" @@ -624,9 +694,9 @@ dependencies = [ [[package]] name = "prost" -version = "0.9.0" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "444879275cb4fd84958b1a1d5420d15e6fcf7c235fe47f053c9c2a80aceb6001" +checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd" dependencies = [ "bytes", "prost-derive", @@ -634,9 +704,9 @@ dependencies = [ [[package]] name = "prost-build" -version = "0.9.0" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62941722fb675d463659e49c4f3fe1fe792ff24fe5bbaa9c08cd3b98a1c354f5" +checksum = "119533552c9a7ffacc21e099c24a0ac8bb19c2a2a3f363de84cd9b844feab270" dependencies = [ "bytes", "heck", @@ -645,18 +715,20 @@ dependencies = [ "log", "multimap", "petgraph", + "prettyplease", "prost", "prost-types", "regex", + "syn 1.0.109", "tempfile", "which", ] [[package]] name = "prost-derive" -version = "0.9.0" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9cc1a3263e07e0bf68e96268f37665207b49560d98739662cdfaae215c720fe" +checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4" dependencies = [ "anyhow", "itertools", @@ -667,11 +739,10 @@ dependencies = [ [[package]] name = "prost-types" -version = "0.9.0" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534b7a0e836e3c482d2693070f982e39e7611da9695d4d1f5a4b186b51faef0a" +checksum = "213622a1460818959ac1181aaeb2dc9c7f63df720db7d788b3e24eacd1983e13" dependencies = [ - "bytes", "prost", ] @@ -780,17 +851,51 @@ dependencies = [ [[package]] name = "rustls" -version = "0.19.1" +version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7" +checksum = "b19faa85ecb5197342b54f987b142fb3e30d0c90da40f80ef4fa9a726e6676ed" dependencies = [ - "base64 0.13.1", "log", "ring", + "rustls-webpki 0.101.1", "sct", - "webpki", ] +[[package]] +name = "rustls-pemfile" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2" +dependencies = [ + "base64 0.21.2", +] + +[[package]] +name = "rustls-webpki" +version = "0.100.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6207cd5ed3d8dca7816f8f3725513a34609c0c765bf652b8c3cb4cfd87db46b" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "rustls-webpki" +version = "0.101.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15f36a6828982f422756984e47912a7a51dcbc2a197aa791158f8ca61cd8204e" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "rustversion" +version = "1.0.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc31bd9b61a32c31f9650d18add92aa83a49ba979c143eefd27fe7177b05bd5f" + [[package]] name = "ryu" version = "1.0.13" @@ -799,9 +904,9 @@ checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041" [[package]] name = "sct" -version = "0.6.1" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b362b83898e0e69f38515b82ee15aa80636befe47c3b6d3d89a911e78fc228ce" +checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" dependencies = [ "ring", "untrusted", @@ -969,6 +1074,12 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "sync_wrapper" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" + [[package]] name = "teaclave_attestation" version = "0.6.0" @@ -984,6 +1095,8 @@ dependencies = [ "num-bigint", "percent-encoding", "rustls", + "rustls-pemfile", + "rustls-webpki 0.100.1", "serde", "serde_json", "sgx_types", @@ -992,7 +1105,6 @@ dependencies = [ "thiserror", "url", "uuid", - "webpki", "webpki-roots", "yasna", ] @@ -1063,10 +1175,10 @@ dependencies = [ "anyhow", "log", "rustls", + "rustls-webpki 0.100.1", "teaclave_attestation", "teaclave_types", "tonic", - "webpki", ] [[package]] @@ -1180,13 +1292,12 @@ dependencies = [ [[package]] name = "tokio-rustls" -version = "0.22.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc6844de72e57df1980054b38be3a9f4702aba4858be64dd700181a8a6d0e1b6" +checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" dependencies = [ "rustls", "tokio", - "webpki", ] [[package]] @@ -1200,20 +1311,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "tokio-util" -version = "0.6.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36943ee01a6d67977dd3f84a5a1d2efeb4ada3a1ae771cadfaa535d9d9fc6507" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "log", - "pin-project-lite", - "tokio", -] - [[package]] name = "tokio-util" version = "0.7.8" @@ -1239,13 +1336,13 @@ dependencies = [ [[package]] name = "tonic" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff08f4649d10a70ffa3522ca559031285d8e421d727ac85c60825761818f5d0a" +version = "0.9.2" +source = "git+https://github.com/apache/incubator-teaclave-crates#9ca099caa1508c3b7ab1a54899f390f9232f10ff" dependencies = [ "async-stream", "async-trait", - "base64 0.13.1", + "axum", + "base64 0.21.2", "bytes", "flate2", "futures-core", @@ -1258,24 +1355,23 @@ dependencies = [ "percent-encoding", "pin-project", "prost", - "prost-derive", + "rustls-pemfile", "tokio", "tokio-rustls", "tokio-stream", - "tokio-util 0.6.10", "tower", "tower-layer", "tower-service", "tracing", - "tracing-futures", ] [[package]] name = "tonic-build" -version = "0.6.2" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9403f1bafde247186684b230dc6f38b5cd514584e8bec1dd32514be4745fa757" +checksum = "a6fdaae4c2c638bb70fe42803a26fbd6fc6ac8c72f5c59f67ecc2a2dcabf4b07" dependencies = [ + "prettyplease", "proc-macro2", "prost-build", "quote", @@ -1296,7 +1392,7 @@ dependencies = [ "rand", "slab", "tokio", - "tokio-util 0.7.8", + "tokio-util", "tower-layer", "tower-service", "tracing", @@ -1321,7 +1417,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" dependencies = [ "cfg-if 1.0.0", - "log", "pin-project-lite", "tracing-attributes", "tracing-core", @@ -1347,16 +1442,6 @@ dependencies = [ "once_cell", ] -[[package]] -name = "tracing-futures" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" -dependencies = [ - "pin-project", - "tracing", -] - [[package]] name = "try-lock" version = "0.2.4" @@ -1384,12 +1469,6 @@ dependencies = [ "tinyvec", ] -[[package]] -name = "unicode-segmentation" -version = "1.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" - [[package]] name = "untrusted" version = "0.7.1" @@ -1498,23 +1577,13 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "webpki" -version = "0.21.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea" -dependencies = [ - "ring", - "untrusted", -] - [[package]] name = "webpki-roots" -version = "0.21.1" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aabe153544e473b775453675851ecc86863d2a81d786d741f6b76778f2a48940" +checksum = "b03058f88386e5ff5310d9111d53f48b17d732b401aeb83a8d5190f2ac459338" dependencies = [ - "webpki", + "rustls-webpki 0.100.1", ] [[package]] diff --git a/examples/rust/sequential_functions/Cargo.toml b/examples/rust/sequential_functions/Cargo.toml index bb6106dd..7c37f0c8 100644 --- a/examples/rust/sequential_functions/Cargo.toml +++ b/examples/rust/sequential_functions/Cargo.toml @@ -31,5 +31,7 @@ teaclave_client_sdk = { path = "../../../sdk/rust/" } [patch.crates-io] h2 = { git = "https://github.com/hyperium/h2", tag = "v0.3.19" } +tonic = { git = "https://github.com/apache/incubator-teaclave-crates" } + sgx_tprotected_fs = { path = "../../../third_party/rust-sgx-sdk/sgx_protected_fs/tfs" } sgx_types = { path = "../../../third_party/rust-sgx-sdk/sgx_types" } diff --git a/rpc/Cargo.toml b/rpc/Cargo.toml index 02866888..f25b2304 100644 --- a/rpc/Cargo.toml +++ b/rpc/Cargo.toml @@ -39,11 +39,11 @@ libos = [ ] [dependencies] -anyhow = { version = "1.0.26" } -log = { version = "0.4.17", features = ["release_max_level_info"] } -rustls = { version = "0.19.0", features = ["dangerous_configuration"] } -tonic = { version = "0.6.1", features = ["tls", "compression"] } -webpki = { version = "0.21.0" } +anyhow = { version = "1.0.26" } +log = { version = "0.4.17", features = ["release_max_level_info"] } +rustls = { version = "0.21.1", features = ["dangerous_configuration"] } +rustls-webpki = { version = "0.100.0" } +tonic = { version = "0.9.2", features = ["tls", "gzip"] } teaclave_types = { path = "../types" } teaclave_attestation = { path = "../attestation" } diff --git a/rpc/src/config.rs b/rpc/src/config.rs index 10a56559..14e9478e 100644 --- a/rpc/src/config.rs +++ b/rpc/src/config.rs @@ -41,10 +41,51 @@ pub struct SgxTrustedTlsServerConfig { validity: std::time::Duration, } +// Refer to `rustls/src/server/handy.rs` in rustls 0.21.2 +// Something which always resolves to the same cert chain. +struct AlwaysResolvesChain(Arc<rustls::sign::CertifiedKey>); + +impl AlwaysResolvesChain { + pub(super) fn new( + chain: Vec<rustls::Certificate>, + priv_key: &rustls::PrivateKey, + ) -> Result<Self, rustls::Error> { + let key = rustls::sign::any_supported_type(priv_key) + .map_err(|_| rustls::Error::General("invalid private key".into()))?; + Ok(Self(Arc::new(rustls::sign::CertifiedKey::new(chain, key)))) + } +} + +impl rustls::server::ResolvesServerCert for AlwaysResolvesChain { + fn resolve( + &self, + _client_hello: rustls::server::ClientHello, + ) -> Option<Arc<rustls::sign::CertifiedKey>> { + Some(Arc::clone(&self.0)) + } +} + +// Refer to `rustls/src/client/handy.rs` in rustls 0.21.2 +impl rustls::client::ResolvesClientCert for AlwaysResolvesChain { + fn resolve( + &self, + _acceptable_issuers: &[&[u8]], + _sigschemes: &[rustls::SignatureScheme], + ) -> Option<Arc<rustls::sign::CertifiedKey>> { + Some(Arc::clone(&self.0)) + } + + fn has_certs(&self) -> bool { + true + } +} + impl Default for SgxTrustedTlsServerConfig { fn default() -> Self { - let client_cert_verifier = rustls::NoClientAuth::new(); - let server_config = rustls::ServerConfig::new(client_cert_verifier); + let server_config = rustls::ServerConfig::builder() + .with_safe_defaults() + .with_no_client_auth() + .with_cert_resolver(Arc::new(rustls::server::ResolvesServerCertUsingSni::new())); let time = SystemTime::now(); let validity = std::time::Duration::from_secs(u64::max_value()); @@ -65,7 +106,8 @@ impl SgxTrustedTlsServerConfig { pub fn server_cert(mut self, cert: &[u8], key_der: &[u8]) -> Result<Self> { let cert_chain = vec![rustls::Certificate(cert.to_vec())]; let key_der = rustls::PrivateKey(key_der.to_vec()); - self.server_config.set_single_cert(cert_chain, key_der)?; + let resolver = AlwaysResolvesChain::new(cert_chain, &key_der)?; + self.server_config.cert_resolver = Arc::new(resolver); Ok(Self { ..self }) } @@ -85,7 +127,7 @@ impl SgxTrustedTlsServerConfig { // Disable this function for non-SGX targets. #[cfg(any(feature = "mesalock_sgx", feature = "libos"))] pub fn attestation_report_verifier( - mut self, + self, accepted_enclave_attrs: Vec<EnclaveAttr>, root_ca: &[u8], verifier: fn(&AttestationReport) -> bool, @@ -95,9 +137,15 @@ impl SgxTrustedTlsServerConfig { root_ca, verifier, )); + let server_config = rustls::ServerConfig::builder() + .with_safe_defaults() + .with_client_cert_verifier(verifier) + .with_cert_resolver(self.server_config.cert_resolver); - self.server_config.set_client_certificate_verifier(verifier); - Ok(Self { ..self }) + Ok(Self { + server_config, + ..self + }) } pub fn server_config(&self) -> Arc<rustls::ServerConfig> { @@ -126,10 +174,9 @@ impl SgxTrustedTlsServerConfig { let cert_chain = vec![rustls::Certificate(attested_tls_config.cert.to_vec())]; let key_der = rustls::PrivateKey(attested_tls_config.private_key.to_vec()); - let mut new_server_config = self.server_config.clone(); - new_server_config.set_single_cert(cert_chain, key_der)?; + let resolver = AlwaysResolvesChain::new(cert_chain, &key_der)?; + self.server_config.cert_resolver = Arc::new(resolver); - self.server_config = new_server_config; self.time = attested_tls_config.time; self.validity = attested_tls_config.validity; @@ -140,7 +187,7 @@ impl SgxTrustedTlsServerConfig { impl From<SgxTrustedTlsServerConfig> for ServerTlsConfig { fn from(config: SgxTrustedTlsServerConfig) -> Self { let mut config_service = config.server_config; - config_service.set_protocols(&[ALPN_H2.as_bytes().to_vec()]); + config_service.alpn_protocols = vec![ALPN_H2.as_bytes().to_vec()]; let mut tls_config = ServerTlsConfig::new(); let tls_config = tls_config.rustls_server_config(config_service); tls_config.to_owned() @@ -159,34 +206,34 @@ impl NoServerAuth { // Allow new_ret_no_self, make it consistent with rustls definition of // `NoClientAuth::new()`. #[allow(clippy::new_ret_no_self)] - pub fn new() -> Arc<dyn rustls::ServerCertVerifier> { + pub fn new() -> Arc<dyn rustls::client::ServerCertVerifier> { Arc::new(NoServerAuth) } } -impl rustls::ServerCertVerifier for NoServerAuth { +impl rustls::client::ServerCertVerifier for NoServerAuth { fn verify_server_cert( &self, - _roots: &rustls::RootCertStore, - _certs: &[rustls::Certificate], - _hostname: webpki::DNSNameRef<'_>, + _end_entity: &rustls::Certificate, + _intermediates: &[rustls::Certificate], + _server_name: &rustls::ServerName, + _scts: &mut dyn Iterator<Item = &[u8]>, _ocsp: &[u8], - ) -> Result<rustls::ServerCertVerified, rustls::TLSError> { - Ok(rustls::ServerCertVerified::assertion()) + _now: SystemTime, + ) -> Result<rustls::client::ServerCertVerified, rustls::Error> { + Ok(rustls::client::ServerCertVerified::assertion()) } } impl Default for SgxTrustedTlsClientConfig { fn default() -> Self { - let mut client_config = rustls::ClientConfig::new(); - - client_config - .dangerous() - .set_certificate_verifier(NoServerAuth::new()); - client_config.versions.clear(); - client_config - .versions - .push(rustls::ProtocolVersion::TLSv1_2); + let client_config = rustls::ClientConfig::builder() + .with_safe_default_cipher_suites() + .with_safe_default_kx_groups() + .with_protocol_versions(&[&rustls::version::TLS12]) + .unwrap() + .with_custom_certificate_verifier(NoServerAuth::new()) + .with_no_client_auth(); Self { client_config, @@ -222,8 +269,8 @@ impl SgxTrustedTlsClientConfig { pub fn client_cert(mut self, cert: &[u8], key_der: &[u8]) -> Result<Self> { let cert_chain = vec![rustls::Certificate(cert.to_vec())]; let key_der = rustls::PrivateKey(key_der.to_vec()); - self.client_config - .set_single_client_cert(cert_chain, key_der)?; + let resolver = AlwaysResolvesChain::new(cert_chain, &key_der)?; + self.client_config.client_auth_cert_resolver = Arc::new(resolver); Ok(Self { ..self }) } @@ -243,7 +290,7 @@ impl From<SgxTrustedTlsClientConfig> for ClientTlsConfig { fn from(config: SgxTrustedTlsClientConfig) -> Self { let mut client_config = config.client_config; // Yout must set the 'h2' negotiation flag. - client_config.set_protocols(&[ALPN_H2.as_bytes().to_vec()]); + client_config.alpn_protocols = vec![ALPN_H2.as_bytes().to_vec()]; ClientTlsConfig::new().rustls_client_config(client_config) } } diff --git a/sdk/rust/Cargo.lock b/sdk/rust/Cargo.lock index a4cbef4c..e093ff5f 100644 --- a/sdk/rust/Cargo.lock +++ b/sdk/rust/Cargo.lock @@ -68,6 +68,51 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +[[package]] +name = "axum" +version = "0.6.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8175979259124331c1d7bf6586ee7e0da434155e4b2d48ec2c8386281d8df39" +dependencies = [ + "async-trait", + "axum-core", + "bitflags", + "bytes", + "futures-util", + "http", + "http-body", + "hyper", + "itoa", + "matchit", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde", + "sync_wrapper", + "tower", + "tower-layer", + "tower-service", +] + +[[package]] +name = "axum-core" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c" +dependencies = [ + "async-trait", + "bytes", + "futures-util", + "http", + "http-body", + "mime", + "rustversion", + "tower-layer", + "tower-service", +] + [[package]] name = "base64" version = "0.11.0" @@ -80,6 +125,12 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" +[[package]] +name = "base64" +version = "0.21.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d" + [[package]] name = "bit-vec" version = "0.6.3" @@ -272,7 +323,7 @@ dependencies = [ "indexmap", "slab", "tokio", - "tokio-util 0.7.8", + "tokio-util", "tracing", ] @@ -284,12 +335,9 @@ checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" [[package]] name = "heck" -version = "0.3.3" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" -dependencies = [ - "unicode-segmentation", -] +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] name = "hermit-abi" @@ -470,12 +518,24 @@ version = "0.4.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "518ef76f2f87365916b142844c16d8fefd85039bc5699050210a7778ee1cd1de" +[[package]] +name = "matchit" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b87248edafb776e59e6ee64a79086f65890d3510f2c656c000bf2a7e8a0aea40" + [[package]] name = "memchr" version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + [[package]] name = "miniz_oxide" version = "0.7.1" @@ -613,6 +673,16 @@ version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +[[package]] +name = "prettyplease" +version = "0.1.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86" +dependencies = [ + "proc-macro2", + "syn 1.0.109", +] + [[package]] name = "proc-macro2" version = "1.0.59" @@ -624,9 +694,9 @@ dependencies = [ [[package]] name = "prost" -version = "0.9.0" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "444879275cb4fd84958b1a1d5420d15e6fcf7c235fe47f053c9c2a80aceb6001" +checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd" dependencies = [ "bytes", "prost-derive", @@ -634,9 +704,9 @@ dependencies = [ [[package]] name = "prost-build" -version = "0.9.0" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62941722fb675d463659e49c4f3fe1fe792ff24fe5bbaa9c08cd3b98a1c354f5" +checksum = "119533552c9a7ffacc21e099c24a0ac8bb19c2a2a3f363de84cd9b844feab270" dependencies = [ "bytes", "heck", @@ -645,18 +715,20 @@ dependencies = [ "log", "multimap", "petgraph", + "prettyplease", "prost", "prost-types", "regex", + "syn 1.0.109", "tempfile", "which", ] [[package]] name = "prost-derive" -version = "0.9.0" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9cc1a3263e07e0bf68e96268f37665207b49560d98739662cdfaae215c720fe" +checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4" dependencies = [ "anyhow", "itertools", @@ -667,11 +739,10 @@ dependencies = [ [[package]] name = "prost-types" -version = "0.9.0" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534b7a0e836e3c482d2693070f982e39e7611da9695d4d1f5a4b186b51faef0a" +checksum = "213622a1460818959ac1181aaeb2dc9c7f63df720db7d788b3e24eacd1983e13" dependencies = [ - "bytes", "prost", ] @@ -780,17 +851,51 @@ dependencies = [ [[package]] name = "rustls" -version = "0.19.1" +version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7" +checksum = "b19faa85ecb5197342b54f987b142fb3e30d0c90da40f80ef4fa9a726e6676ed" dependencies = [ - "base64 0.13.1", "log", "ring", + "rustls-webpki 0.101.1", "sct", - "webpki", ] +[[package]] +name = "rustls-pemfile" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2" +dependencies = [ + "base64 0.21.2", +] + +[[package]] +name = "rustls-webpki" +version = "0.100.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6207cd5ed3d8dca7816f8f3725513a34609c0c765bf652b8c3cb4cfd87db46b" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "rustls-webpki" +version = "0.101.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15f36a6828982f422756984e47912a7a51dcbc2a197aa791158f8ca61cd8204e" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "rustversion" +version = "1.0.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc31bd9b61a32c31f9650d18add92aa83a49ba979c143eefd27fe7177b05bd5f" + [[package]] name = "ryu" version = "1.0.13" @@ -799,9 +904,9 @@ checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041" [[package]] name = "sct" -version = "0.6.1" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b362b83898e0e69f38515b82ee15aa80636befe47c3b6d3d89a911e78fc228ce" +checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" dependencies = [ "ring", "untrusted", @@ -959,6 +1064,12 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "sync_wrapper" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" + [[package]] name = "teaclave_attestation" version = "0.6.0" @@ -974,6 +1085,8 @@ dependencies = [ "num-bigint", "percent-encoding", "rustls", + "rustls-pemfile", + "rustls-webpki 0.100.1", "serde", "serde_json", "sgx_types", @@ -982,7 +1095,6 @@ dependencies = [ "thiserror", "url", "uuid", - "webpki", "webpki-roots", "yasna", ] @@ -1053,10 +1165,10 @@ dependencies = [ "anyhow", "log", "rustls", + "rustls-webpki 0.100.1", "teaclave_attestation", "teaclave_types", "tonic", - "webpki", ] [[package]] @@ -1169,13 +1281,12 @@ dependencies = [ [[package]] name = "tokio-rustls" -version = "0.22.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc6844de72e57df1980054b38be3a9f4702aba4858be64dd700181a8a6d0e1b6" +checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" dependencies = [ "rustls", "tokio", - "webpki", ] [[package]] @@ -1189,20 +1300,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "tokio-util" -version = "0.6.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36943ee01a6d67977dd3f84a5a1d2efeb4ada3a1ae771cadfaa535d9d9fc6507" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "log", - "pin-project-lite", - "tokio", -] - [[package]] name = "tokio-util" version = "0.7.8" @@ -1228,13 +1325,13 @@ dependencies = [ [[package]] name = "tonic" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff08f4649d10a70ffa3522ca559031285d8e421d727ac85c60825761818f5d0a" +version = "0.9.2" +source = "git+https://github.com/apache/incubator-teaclave-crates#9ca099caa1508c3b7ab1a54899f390f9232f10ff" dependencies = [ "async-stream", "async-trait", - "base64 0.13.1", + "axum", + "base64 0.21.2", "bytes", "flate2", "futures-core", @@ -1247,24 +1344,23 @@ dependencies = [ "percent-encoding", "pin-project", "prost", - "prost-derive", + "rustls-pemfile", "tokio", "tokio-rustls", "tokio-stream", - "tokio-util 0.6.10", "tower", "tower-layer", "tower-service", "tracing", - "tracing-futures", ] [[package]] name = "tonic-build" -version = "0.6.2" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9403f1bafde247186684b230dc6f38b5cd514584e8bec1dd32514be4745fa757" +checksum = "a6fdaae4c2c638bb70fe42803a26fbd6fc6ac8c72f5c59f67ecc2a2dcabf4b07" dependencies = [ + "prettyplease", "proc-macro2", "prost-build", "quote", @@ -1285,7 +1381,7 @@ dependencies = [ "rand", "slab", "tokio", - "tokio-util 0.7.8", + "tokio-util", "tower-layer", "tower-service", "tracing", @@ -1310,7 +1406,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" dependencies = [ "cfg-if 1.0.0", - "log", "pin-project-lite", "tracing-attributes", "tracing-core", @@ -1336,16 +1431,6 @@ dependencies = [ "once_cell", ] -[[package]] -name = "tracing-futures" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" -dependencies = [ - "pin-project", - "tracing", -] - [[package]] name = "try-lock" version = "0.2.4" @@ -1373,12 +1458,6 @@ dependencies = [ "tinyvec", ] -[[package]] -name = "unicode-segmentation" -version = "1.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" - [[package]] name = "untrusted" version = "0.7.1" @@ -1488,23 +1567,13 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "webpki" -version = "0.21.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea" -dependencies = [ - "ring", - "untrusted", -] - [[package]] name = "webpki-roots" -version = "0.21.1" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aabe153544e473b775453675851ecc86863d2a81d786d741f6b76778f2a48940" +checksum = "b03058f88386e5ff5310d9111d53f48b17d732b401aeb83a8d5190f2ac459338" dependencies = [ - "webpki", + "rustls-webpki 0.100.1", ] [[package]] diff --git a/sdk/rust/Cargo.toml b/sdk/rust/Cargo.toml index 16d07c8a..31fc8d4a 100644 --- a/sdk/rust/Cargo.toml +++ b/sdk/rust/Cargo.toml @@ -41,5 +41,7 @@ tokio = { version = "1.0", features = ["rt-multi-thread", "time" [patch.crates-io] h2 = { git = "https://github.com/hyperium/h2", tag = "v0.3.19" } +tonic = { git = "https://github.com/apache/incubator-teaclave-crates" } + sgx_tprotected_fs = { path = "../../third_party/rust-sgx-sdk/sgx_protected_fs/tfs" } sgx_types = { path = "../../third_party/rust-sgx-sdk/sgx_types" } diff --git a/services/proto/Cargo.toml b/services/proto/Cargo.toml index 3e610d8d..e8661dfb 100644 --- a/services/proto/Cargo.toml +++ b/services/proto/Cargo.toml @@ -38,10 +38,10 @@ cov = ["sgx_cov"] [dependencies] anyhow = { version = "1.0.26" } chrono = { version = "0.4", default-features = false } -prost = { version = "0.9" } +prost = { version = "0.11" } serde = { version = "1.0.39", features = ["derive"] } serde_json = { version = "1.0.39" } -tonic = { version = "0.6.1", features = ["tls", "compression"]} +tonic = { version = "0.9.2", features = ["tls", "gzip"]} url = { version = "2.1.1" } uuid = { version = "0.8.1", features = ["v4"] } teaclave_types = { path = "../../types" } @@ -53,4 +53,4 @@ sgx_cov = { version = "2.0.0", optional = true } sgx_types = { version = "2.0.0" } [build-dependencies] -tonic-build = { version = "0.6.0", features = ["prost","compression"] } +tonic-build = { version = "0.9.2", features = ["prost"] } diff --git a/tests/utils/proc_macro/Cargo.toml b/tests/utils/proc_macro/Cargo.toml index 505f1215..310d858a 100644 --- a/tests/utils/proc_macro/Cargo.toml +++ b/tests/utils/proc_macro/Cargo.toml @@ -27,4 +27,4 @@ proc-macro = true [dependencies] proc-macro2 = "1.0" quote = "1.0" -syn = { version = "1.0", features = ["full"] } +syn = { version = "2.0", features = ["full"] } diff --git a/types/Cargo.toml b/types/Cargo.toml index 6fc0c305..0c76839e 100644 --- a/types/Cargo.toml +++ b/types/Cargo.toml @@ -46,7 +46,7 @@ serde = { version = "1.0.92", features = ["derive"] } serde_json = { version = "1.0.39" } thiserror = { version = "1.0.9" } toml = { version = "0.5.3" } -tonic = { version = "0.6.1", features = ["tls", "compression"] } +tonic = { version = "0.9.2", features = ["tls", "gzip"] } url = { version = "2.1.1", features = ["serde"]} uuid = { version = "0.8.1", features = ["v4", "v5", "serde"] } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
