use boring::ssl::SslVersion;
pub mod chrome_134;
pub type TlsVersion = SslVersion;
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum Platform {
MacOsArm,
MacOsX86,
WindowsX64,
LinuxX64,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct TlsProfile {
pub min_version: TlsVersion,
pub max_version: TlsVersion,
pub cipher_list: &'static str,
pub curves: &'static [u16],
pub grease_enabled: bool,
pub permute_extensions: bool,
pub enable_ech_grease: bool,
pub alps_enabled: bool,
pub alps_use_new_codepoint: bool,
pub alps_extra_settings: &'static [(u16, u32)],
pub compress_certificate: bool,
pub session_ticket_enabled: bool,
pub alpn_protocols: &'static [&'static [u8]],
pub sigalgs: &'static [u16],
pub verify_peer: bool,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct SettingsFrame {
pub header_table_size: u32,
pub enable_push: bool,
pub initial_window_size: u32,
pub max_header_list_size: u32,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct Http2Profile {
pub settings: SettingsFrame,
pub initial_connection_window_size: u32,
pub pseudo_order: [PseudoOrder; 4],
pub headers_priority: HeadersPriority,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct HeadersPriority {
pub dep: u32,
pub weight: u8,
pub exclusive: bool,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum PseudoOrder {
Method,
Authority,
Scheme,
Path,
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct HeaderProfile {
pub user_agent: String,
pub sec_ch_ua: String,
pub sec_ch_ua_platform: String,
pub sec_ch_ua_platform_version: String,
pub include_priority_header: bool,
pub zstd_encoding: bool,
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct ChromeProfile {
pub version: u32,
pub platform: Platform,
pub tls: TlsProfile,
pub h2: Http2Profile,
pub headers: HeaderProfile,
}