diff --git a/Cargo.lock b/Cargo.lock index 625ff2b28c6d0..12498627a3dae 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1035,8 +1035,8 @@ dependencies = [ "hyper", "serde", "tokio", - "tokio-rustls 0.22.0", - "tokio-tungstenite 0.14.0", + "tokio-rustls 0.23.0", + "tokio-tungstenite 0.15.0 (git+https://github.com/dnaka91/tokio-tungstenite?branch=rustls-0.20)", ] [[package]] @@ -1894,15 +1894,6 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "90953f308a79fe6d62a4643e51f848fbfddcd05975a38e69fdf4ab86a7baf7ca" -[[package]] -name = "input_buffer" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f97967975f448f1a7ddb12b0bc41069d09ed6a1c161a92687e057325db35d413" -dependencies = [ - "bytes", -] - [[package]] name = "instant" version = "0.1.11" @@ -4071,7 +4062,7 @@ dependencies = [ "tempfile", "tokio", "tokio-rustls 0.23.0", - "tokio-tungstenite 0.15.0", + "tokio-tungstenite 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.9", ] @@ -4211,32 +4202,30 @@ dependencies = [ [[package]] name = "tokio-tungstenite" -version = "0.14.0" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e96bb520beab540ab664bd5a9cfeaa1fcd846fa68c830b42e2c8963071251d2" +checksum = "511de3f85caf1c98983545490c3d09685fa8eb634e57eec22bb4db271f46cbd8" dependencies = [ "futures-util", "log", "pin-project", - "rustls 0.19.1", "tokio", - "tokio-rustls 0.22.0", - "tungstenite 0.13.0", - "webpki 0.21.4", - "webpki-roots 0.21.1", + "tungstenite 0.14.0", ] [[package]] name = "tokio-tungstenite" version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "511de3f85caf1c98983545490c3d09685fa8eb634e57eec22bb4db271f46cbd8" +source = "git+https://github.com/dnaka91/tokio-tungstenite?branch=rustls-0.20#49d4e0b1a0392ab89f47784d6b15eec5f1633cf8" dependencies = [ "futures-util", "log", - "pin-project", + "rustls 0.20.0", "tokio", - "tungstenite 0.14.0", + "tokio-rustls 0.23.0", + "tungstenite 0.15.0", + "webpki 0.22.0", + "webpki-roots 0.22.1", ] [[package]] @@ -4398,32 +4387,27 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "tungstenite" -version = "0.13.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fe8dada8c1a3aeca77d6b51a4f1314e0f4b8e438b7b1b71e3ddaca8080e4093" +checksum = "a0b2d8558abd2e276b0a8df5c05a2ec762609344191e5fd23e292c910e9165b5" dependencies = [ "base64 0.13.0", "byteorder", "bytes", "http", "httparse", - "input_buffer", "log", "rand 0.8.4", - "rustls 0.19.1", "sha-1", "thiserror", "url", "utf-8", - "webpki 0.21.4", - "webpki-roots 0.21.1", ] [[package]] name = "tungstenite" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0b2d8558abd2e276b0a8df5c05a2ec762609344191e5fd23e292c910e9165b5" +version = "0.15.0" +source = "git+https://github.com/dnaka91/tungstenite-rs.git?rev=f4bb653aa03665a83bd98068432602f07cd5634b#f4bb653aa03665a83bd98068432602f07cd5634b" dependencies = [ "base64 0.13.0", "byteorder", @@ -4432,10 +4416,12 @@ dependencies = [ "httparse", "log", "rand 0.8.4", + "rustls 0.20.0", "sha-1", "thiserror", "url", "utf-8", + "webpki 0.22.0", ] [[package]] diff --git a/ext/websocket/Cargo.toml b/ext/websocket/Cargo.toml index 39007a5b6298a..789373b3306bb 100644 --- a/ext/websocket/Cargo.toml +++ b/ext/websocket/Cargo.toml @@ -20,5 +20,11 @@ http = "0.2.4" hyper = { version = "0.14.12" } serde = { version = "1.0.129", features = ["derive"] } tokio = { version = "1.10.1", features = ["full"] } -tokio-rustls = "0.22.0" -tokio-tungstenite = { version = "0.14.0", features = ["rustls-tls"] } +tokio-rustls = "0.23.0" + +[dependencies.tokio-tungstenite] +version = "0.15.0" +features = ["rustls-tls-webpki-roots"] +# TODO(ry) Waiting for https://github.com/snapview/tokio-tungstenite/pull/198 +git = "https://github.com/dnaka91/tokio-tungstenite" +branch = "rustls-0.20" diff --git a/ext/websocket/lib.rs b/ext/websocket/lib.rs index 32ac4cf038743..30d379ef2fa12 100644 --- a/ext/websocket/lib.rs +++ b/ext/websocket/lib.rs @@ -20,26 +20,29 @@ use deno_core::Resource; use deno_core::ResourceId; use deno_core::ZeroCopyBuf; use deno_tls::create_client_config; -use deno_tls::webpki::DNSNameRef; - -use http::{Method, Request, Uri}; +use http::Method; +use http::Request; +use http::Uri; use serde::Deserialize; use serde::Serialize; use std::borrow::Cow; use std::cell::RefCell; +use std::convert::TryFrom; use std::fmt; use std::path::PathBuf; use std::rc::Rc; use std::sync::Arc; use tokio::net::TcpStream; use tokio_rustls::rustls::RootCertStore; +use tokio_rustls::rustls::ServerName; use tokio_rustls::TlsConnector; -use tokio_tungstenite::tungstenite::{ - handshake::client::Response, protocol::frame::coding::CloseCode, - protocol::CloseFrame, Message, -}; +use tokio_tungstenite::client_async; +use tokio_tungstenite::tungstenite::handshake::client::Response; +use tokio_tungstenite::tungstenite::protocol::frame::coding::CloseCode; +use tokio_tungstenite::tungstenite::protocol::CloseFrame; +use tokio_tungstenite::tungstenite::protocol::Message; use tokio_tungstenite::MaybeTlsStream; -use tokio_tungstenite::{client_async, WebSocketStream}; +use tokio_tungstenite::WebSocketStream; pub use tokio_tungstenite; // Re-export tokio_tungstenite @@ -244,9 +247,10 @@ where root_cert_store, vec![], unsafely_ignore_certificate_errors, + None, )?; let tls_connector = TlsConnector::from(Arc::new(tls_config)); - let dnsname = DNSNameRef::try_from_ascii_str(domain) + let dnsname = ServerName::try_from(domain.as_str()) .map_err(|_| invalid_hostname(domain))?; let tls_socket = tls_connector.connect(dnsname, tcp_socket).await?; MaybeTlsStream::Rustls(tls_socket)