use super::tls::OkHttpTlsSettings;
use crate::tls::impersonate::ImpersonateSettings;
use crate::tls::TlsResult;
use http::{
header::{ACCEPT, ACCEPT_ENCODING, ACCEPT_LANGUAGE, USER_AGENT},
HeaderMap, HeaderValue,
};
pub(crate) fn get_settings() -> TlsResult<ImpersonateSettings> {
Ok(ImpersonateSettings::builder()
.tls(
OkHttpTlsSettings::builder()
.cipher_list(&[
"TLS_AES_128_GCM_SHA256",
"TLS_AES_256_GCM_SHA384",
"TLS_CHACHA20_POLY1305_SHA256",
"TLS_AES_128_CCM_SHA256",
"TLS_AES_256_CCM_8_SHA256",
"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
"TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
"TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
"TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256",
"TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256",
"TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA",
"TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA",
"TLS_RSA_WITH_AES_128_GCM_SHA256",
"TLS_RSA_WITH_AES_256_GCM_SHA384",
"TLS_RSA_WITH_AES_128_CBC_SHA",
"TLS_RSA_WITH_AES_256_CBC_SHA",
"TLS_RSA_WITH_3DES_EDE_CBC_SHA",
])
.build()
.try_into()?,
)
.http2(super::http2_template_1())
.headers(Box::new(header_initializer))
.build())
}
fn header_initializer(headers: &mut HeaderMap) {
headers.insert(ACCEPT, HeaderValue::from_static("*/*"));
headers.insert(
ACCEPT_LANGUAGE,
HeaderValue::from_static("de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7"),
);
headers.insert(USER_AGENT, HeaderValue::from_static("GM-Android/6.112.2 (240590300; M:Google Pixel 7a; O:34; D:2b045e03986fa6dc) ObsoleteUrlFactory/1.0 OkHttp/3.13.0"));
headers.insert(
ACCEPT_ENCODING,
HeaderValue::from_static("gzip, deflate, br"),
);
}