diff --git a/src/tls/profile/chrome/mod.rs b/src/tls/impersonate/chrome/mod.rs similarity index 100% rename from src/tls/profile/chrome/mod.rs rename to src/tls/impersonate/chrome/mod.rs diff --git a/src/tls/profile/chrome/v100.rs b/src/tls/impersonate/chrome/v100.rs similarity index 100% rename from src/tls/profile/chrome/v100.rs rename to src/tls/impersonate/chrome/v100.rs diff --git a/src/tls/profile/chrome/v101.rs b/src/tls/impersonate/chrome/v101.rs similarity index 100% rename from src/tls/profile/chrome/v101.rs rename to src/tls/impersonate/chrome/v101.rs diff --git a/src/tls/profile/chrome/v104.rs b/src/tls/impersonate/chrome/v104.rs similarity index 100% rename from src/tls/profile/chrome/v104.rs rename to src/tls/impersonate/chrome/v104.rs diff --git a/src/tls/profile/chrome/v105.rs b/src/tls/impersonate/chrome/v105.rs similarity index 100% rename from src/tls/profile/chrome/v105.rs rename to src/tls/impersonate/chrome/v105.rs diff --git a/src/tls/profile/chrome/v106.rs b/src/tls/impersonate/chrome/v106.rs similarity index 100% rename from src/tls/profile/chrome/v106.rs rename to src/tls/impersonate/chrome/v106.rs diff --git a/src/tls/profile/chrome/v107.rs b/src/tls/impersonate/chrome/v107.rs similarity index 100% rename from src/tls/profile/chrome/v107.rs rename to src/tls/impersonate/chrome/v107.rs diff --git a/src/tls/profile/chrome/v108.rs b/src/tls/impersonate/chrome/v108.rs similarity index 100% rename from src/tls/profile/chrome/v108.rs rename to src/tls/impersonate/chrome/v108.rs diff --git a/src/tls/profile/chrome/v109.rs b/src/tls/impersonate/chrome/v109.rs similarity index 100% rename from src/tls/profile/chrome/v109.rs rename to src/tls/impersonate/chrome/v109.rs diff --git a/src/tls/profile/chrome/v114.rs b/src/tls/impersonate/chrome/v114.rs similarity index 100% rename from src/tls/profile/chrome/v114.rs rename to src/tls/impersonate/chrome/v114.rs diff --git a/src/tls/profile/chrome/v116.rs b/src/tls/impersonate/chrome/v116.rs similarity index 100% rename from src/tls/profile/chrome/v116.rs rename to src/tls/impersonate/chrome/v116.rs diff --git a/src/tls/profile/chrome/v117.rs b/src/tls/impersonate/chrome/v117.rs similarity index 100% rename from src/tls/profile/chrome/v117.rs rename to src/tls/impersonate/chrome/v117.rs diff --git a/src/tls/profile/chrome/v118.rs b/src/tls/impersonate/chrome/v118.rs similarity index 100% rename from src/tls/profile/chrome/v118.rs rename to src/tls/impersonate/chrome/v118.rs diff --git a/src/tls/profile/chrome/v119.rs b/src/tls/impersonate/chrome/v119.rs similarity index 100% rename from src/tls/profile/chrome/v119.rs rename to src/tls/impersonate/chrome/v119.rs diff --git a/src/tls/profile/chrome/v120.rs b/src/tls/impersonate/chrome/v120.rs similarity index 100% rename from src/tls/profile/chrome/v120.rs rename to src/tls/impersonate/chrome/v120.rs diff --git a/src/tls/profile/chrome/v123.rs b/src/tls/impersonate/chrome/v123.rs similarity index 100% rename from src/tls/profile/chrome/v123.rs rename to src/tls/impersonate/chrome/v123.rs diff --git a/src/tls/profile/chrome/v124.rs b/src/tls/impersonate/chrome/v124.rs similarity index 100% rename from src/tls/profile/chrome/v124.rs rename to src/tls/impersonate/chrome/v124.rs diff --git a/src/tls/profile/chrome/v126.rs b/src/tls/impersonate/chrome/v126.rs similarity index 100% rename from src/tls/profile/chrome/v126.rs rename to src/tls/impersonate/chrome/v126.rs diff --git a/src/tls/profile/chrome/v127.rs b/src/tls/impersonate/chrome/v127.rs similarity index 100% rename from src/tls/profile/chrome/v127.rs rename to src/tls/impersonate/chrome/v127.rs diff --git a/src/tls/profile/edge/edge101.rs b/src/tls/impersonate/edge/edge101.rs similarity index 100% rename from src/tls/profile/edge/edge101.rs rename to src/tls/impersonate/edge/edge101.rs diff --git a/src/tls/profile/edge/edge122.rs b/src/tls/impersonate/edge/edge122.rs similarity index 100% rename from src/tls/profile/edge/edge122.rs rename to src/tls/impersonate/edge/edge122.rs diff --git a/src/tls/profile/edge/edge127.rs b/src/tls/impersonate/edge/edge127.rs similarity index 100% rename from src/tls/profile/edge/edge127.rs rename to src/tls/impersonate/edge/edge127.rs diff --git a/src/tls/profile/edge/mod.rs b/src/tls/impersonate/edge/mod.rs similarity index 97% rename from src/tls/profile/edge/mod.rs rename to src/tls/impersonate/edge/mod.rs index 0be55767..b767102c 100644 --- a/src/tls/profile/edge/mod.rs +++ b/src/tls/impersonate/edge/mod.rs @@ -1,7 +1,6 @@ pub mod edge101; pub mod edge122; pub mod edge127; -pub mod edge99; const CIPHER_LIST: [&str; 15] = [ "TLS_AES_128_GCM_SHA256", diff --git a/src/tls/profile/mod.rs b/src/tls/impersonate/mod.rs similarity index 97% rename from src/tls/profile/mod.rs rename to src/tls/impersonate/mod.rs index de98f749..f04b53f9 100644 --- a/src/tls/profile/mod.rs +++ b/src/tls/impersonate/mod.rs @@ -70,7 +70,6 @@ pub fn tls_settings(ver: Impersonate, headers: &mut HeaderMap) -> TlsResult okhttp::okhttp5::get_settings, // Edge - Edge99 => edge::edge99::get_settings, Edge101 => edge::edge101::get_settings, Edge122 => edge::edge122::get_settings, Edge127 => edge::edge127::get_settings @@ -122,9 +121,8 @@ pub enum Impersonate { OkHttp4_9, OkHttp4_10, OkHttp5, - + // Edge - Edge99, Edge101, Edge122, Edge127, @@ -180,7 +178,6 @@ impl FromStr for Impersonate { "okhttp_5" => Ok(OkHttp5), // Edge - "edge_99" => Ok(Edge99), "edge_101" => Ok(Edge101), "edge_122" => Ok(Edge122), "edge_127" => Ok(Edge127), @@ -223,7 +220,7 @@ impl Impersonate { } // Edge - Edge99 | Edge101 | Edge122 | Edge127 => TypedImpersonate::Edge, + Edge101 | Edge122 | Edge127 => TypedImpersonate::Edge, } } } diff --git a/src/tls/profile/okhttp/mod.rs b/src/tls/impersonate/okhttp/mod.rs similarity index 100% rename from src/tls/profile/okhttp/mod.rs rename to src/tls/impersonate/okhttp/mod.rs diff --git a/src/tls/profile/okhttp/okhttp3_11.rs b/src/tls/impersonate/okhttp/okhttp3_11.rs similarity index 100% rename from src/tls/profile/okhttp/okhttp3_11.rs rename to src/tls/impersonate/okhttp/okhttp3_11.rs diff --git a/src/tls/profile/okhttp/okhttp3_13.rs b/src/tls/impersonate/okhttp/okhttp3_13.rs similarity index 100% rename from src/tls/profile/okhttp/okhttp3_13.rs rename to src/tls/impersonate/okhttp/okhttp3_13.rs diff --git a/src/tls/profile/okhttp/okhttp3_14.rs b/src/tls/impersonate/okhttp/okhttp3_14.rs similarity index 100% rename from src/tls/profile/okhttp/okhttp3_14.rs rename to src/tls/impersonate/okhttp/okhttp3_14.rs diff --git a/src/tls/profile/okhttp/okhttp3_9.rs b/src/tls/impersonate/okhttp/okhttp3_9.rs similarity index 100% rename from src/tls/profile/okhttp/okhttp3_9.rs rename to src/tls/impersonate/okhttp/okhttp3_9.rs diff --git a/src/tls/profile/okhttp/okhttp4_10.rs b/src/tls/impersonate/okhttp/okhttp4_10.rs similarity index 100% rename from src/tls/profile/okhttp/okhttp4_10.rs rename to src/tls/impersonate/okhttp/okhttp4_10.rs diff --git a/src/tls/profile/okhttp/okhttp4_9.rs b/src/tls/impersonate/okhttp/okhttp4_9.rs similarity index 100% rename from src/tls/profile/okhttp/okhttp4_9.rs rename to src/tls/impersonate/okhttp/okhttp4_9.rs diff --git a/src/tls/profile/okhttp/okhttp5.rs b/src/tls/impersonate/okhttp/okhttp5.rs similarity index 100% rename from src/tls/profile/okhttp/okhttp5.rs rename to src/tls/impersonate/okhttp/okhttp5.rs diff --git a/src/tls/profile/safari/mod.rs b/src/tls/impersonate/safari/mod.rs similarity index 100% rename from src/tls/profile/safari/mod.rs rename to src/tls/impersonate/safari/mod.rs diff --git a/src/tls/profile/safari/safari15_3.rs b/src/tls/impersonate/safari/safari15_3.rs similarity index 100% rename from src/tls/profile/safari/safari15_3.rs rename to src/tls/impersonate/safari/safari15_3.rs diff --git a/src/tls/profile/safari/safari15_5.rs b/src/tls/impersonate/safari/safari15_5.rs similarity index 100% rename from src/tls/profile/safari/safari15_5.rs rename to src/tls/impersonate/safari/safari15_5.rs diff --git a/src/tls/profile/safari/safari15_6_1.rs b/src/tls/impersonate/safari/safari15_6_1.rs similarity index 100% rename from src/tls/profile/safari/safari15_6_1.rs rename to src/tls/impersonate/safari/safari15_6_1.rs diff --git a/src/tls/profile/safari/safari16.rs b/src/tls/impersonate/safari/safari16.rs similarity index 100% rename from src/tls/profile/safari/safari16.rs rename to src/tls/impersonate/safari/safari16.rs diff --git a/src/tls/profile/safari/safari16_5.rs b/src/tls/impersonate/safari/safari16_5.rs similarity index 100% rename from src/tls/profile/safari/safari16_5.rs rename to src/tls/impersonate/safari/safari16_5.rs diff --git a/src/tls/profile/safari/safari17_0.rs b/src/tls/impersonate/safari/safari17_0.rs similarity index 100% rename from src/tls/profile/safari/safari17_0.rs rename to src/tls/impersonate/safari/safari17_0.rs diff --git a/src/tls/profile/safari/safari17_2_1.rs b/src/tls/impersonate/safari/safari17_2_1.rs similarity index 100% rename from src/tls/profile/safari/safari17_2_1.rs rename to src/tls/impersonate/safari/safari17_2_1.rs diff --git a/src/tls/profile/safari/safari17_4_1.rs b/src/tls/impersonate/safari/safari17_4_1.rs similarity index 100% rename from src/tls/profile/safari/safari17_4_1.rs rename to src/tls/impersonate/safari/safari17_4_1.rs diff --git a/src/tls/profile/safari/safari17_5.rs b/src/tls/impersonate/safari/safari17_5.rs similarity index 100% rename from src/tls/profile/safari/safari17_5.rs rename to src/tls/impersonate/safari/safari17_5.rs diff --git a/src/tls/profile/safari/safari_ios_16_5.rs b/src/tls/impersonate/safari/safari_ios_16_5.rs similarity index 100% rename from src/tls/profile/safari/safari_ios_16_5.rs rename to src/tls/impersonate/safari/safari_ios_16_5.rs diff --git a/src/tls/profile/safari/safari_ios_17_2.rs b/src/tls/impersonate/safari/safari_ios_17_2.rs similarity index 100% rename from src/tls/profile/safari/safari_ios_17_2.rs rename to src/tls/impersonate/safari/safari_ios_17_2.rs diff --git a/src/tls/profile/safari/safari_ios_17_4_1.rs b/src/tls/impersonate/safari/safari_ios_17_4_1.rs similarity index 100% rename from src/tls/profile/safari/safari_ios_17_4_1.rs rename to src/tls/impersonate/safari/safari_ios_17_4_1.rs diff --git a/src/tls/mod.rs b/src/tls/mod.rs index 826ab5b8..d180d6f0 100644 --- a/src/tls/mod.rs +++ b/src/tls/mod.rs @@ -9,7 +9,7 @@ mod cert_compression; pub mod connector; pub mod extension; -mod profile; +mod impersonate; mod settings; use crate::connect::HttpConnector; @@ -20,8 +20,8 @@ use boring::{ ssl::{ConnectConfiguration, SslConnectorBuilder}, }; use connector::{HttpsConnector, HttpsLayer, HttpsLayerSettings}; -pub(crate) use profile::tls_settings; -pub use profile::{Impersonate, TypedImpersonate}; +pub(crate) use impersonate::tls_settings; +pub use impersonate::{Impersonate, TypedImpersonate}; pub use settings::{ Http2Settings, ImpersonateSettings, SslBuilderSettings, SslContextSettings, SslSettings, }; diff --git a/src/tls/profile/edge/edge99.rs b/src/tls/profile/edge/edge99.rs deleted file mode 100644 index b58c4b59..00000000 --- a/src/tls/profile/edge/edge99.rs +++ /dev/null @@ -1,56 +0,0 @@ -use super::CIPHER_LIST; -use crate::tls::extension::{EdgeExtension, Extension, SslExtension}; -use crate::tls::{Http2Settings, SslBuilderSettings}; -use crate::tls::{ImpersonateSettings, TlsResult}; -use http::{ - header::{ACCEPT, ACCEPT_ENCODING, ACCEPT_LANGUAGE, UPGRADE_INSECURE_REQUESTS, USER_AGENT}, - HeaderMap, HeaderValue, -}; - -pub(crate) fn get_settings( - settings: ImpersonateSettings, - headers: &mut HeaderMap, -) -> TlsResult { - init_headers(headers); - Ok(SslBuilderSettings { - ssl_builder: EdgeExtension::builder()?.configure_cipher_list(&CIPHER_LIST)?, - enable_psk: settings.pre_share_key, - http2: Http2Settings { - initial_stream_window_size: Some(6291456), - initial_connection_window_size: Some(15728640), - max_concurrent_streams: Some(1000), - max_header_list_size: Some(262144), - header_table_size: Some(65536), - enable_push: None, - headers_priority: settings.headers_priority, - headers_pseudo_order: settings.headers_pseudo_order, - settings_order: settings.settings_order, - }, - }) -} - -fn init_headers(headers: &mut HeaderMap) { - headers.insert( - "sec-ch-ua", - HeaderValue::from_static( - r#"" Not A;Brand";v="99", "Chromium";v="99", "Microsoft Edge";v="99""#, - ), - ); - headers.insert("sec-ch-ua-mobile", HeaderValue::from_static("?0")); - headers.insert( - "sec-ch-ua-platform", - HeaderValue::from_static("\"Windows\""), - ); - headers.insert(UPGRADE_INSECURE_REQUESTS, HeaderValue::from_static("1")); - headers.insert(USER_AGENT, HeaderValue::from_static("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36 Edg/99.0.1150.30")); - headers.insert(ACCEPT, HeaderValue::from_static("text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9")); - headers.insert("sec-fetch-site", HeaderValue::from_static("none")); - headers.insert("sec-fetch-mode", HeaderValue::from_static("navigate")); - headers.insert("sec-fetch-user", HeaderValue::from_static("?1")); - headers.insert("sec-fetch-dest", HeaderValue::from_static("document")); - headers.insert( - ACCEPT_ENCODING, - HeaderValue::from_static("gzip, deflate, br"), - ); - headers.insert(ACCEPT_LANGUAGE, HeaderValue::from_static("en-US,en;q=0.9")); -} diff --git a/src/tls/settings.rs b/src/tls/settings.rs index 7f6b6191..774ef7c4 100644 --- a/src/tls/settings.rs +++ b/src/tls/settings.rs @@ -1,5 +1,5 @@ use super::{ - profile::{Impersonate, TypedImpersonate}, + impersonate::{Impersonate, TypedImpersonate}, Version, }; use crate::async_impl::client::HttpVersionPref; diff --git a/tests/badssl.rs b/tests/badssl.rs index 9016ed2f..a4d73eb1 100644 --- a/tests/badssl.rs +++ b/tests/badssl.rs @@ -21,7 +21,6 @@ async fn test_badssl_modern() { #[tokio::test] async fn test_badssl_self_signed() { let text = rquest::Client::builder() - .impersonate(rquest::tls::OkHttp4_9) .danger_accept_invalid_certs(true) .no_proxy() .build()