pub struct TlsProfile {Show 15 fields
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,
}Expand description
Configuration for the TLS 1.2/1.3 handshake layer.
This structure defines the Layer 4 identity of the client. Small changes here (such as the order of cipher suites) will change the JA3/JA4 fingerprint and can lead to immediate detection.
Fields§
§min_version: TlsVersionMinimum allowed TLS version (typically TLS 1.2).
max_version: TlsVersionMaximum allowed TLS version (typically TLS 1.3).
cipher_list: &'static strColon-separated list of cipher suites in OpenSSL format.
Precision in the order of this list is critical as it directly impacts the JA3/JA4 fingerprint.
curves: &'static [u16]Numeric IDs for supported elliptic curve groups.
grease_enabled: boolWhether to enable TLS GREASE (RFC 8701) to simulate randomized extensions.
permute_extensions: boolWhether to permute (shuffle) TLS extensions per connection.
enable_ech_grease: boolWhether to send a dummy ECH (Encrypted Client Hello) extension for GREASE.
alps_enabled: boolWhether to enable ALPS (Application-Layer Protocol Settings).
alps_use_new_codepoint: boolWhether to use the draft-01 or final ALPS codepoint.
alps_extra_settings: &'static [(u16, u32)]Additional H2 SETTINGS IDs to append in the ALPS payload.
Windows and Linux Chrome include an extra setting (ID 31386) in the
ALPS handshake data that macOS omits. Each tuple is (id, value).
compress_certificate: boolWhether to support RFC 8879 certificate compression (Brotli).
session_ticket_enabled: boolWhether to enable stateless session tickets for fast reconnection.
alpn_protocols: &'static [&'static [u8]]Ordered list of ALPN protocol identifiers.
sigalgs: &'static [u16]Ordered list of signature algorithm IDs (used for JA4_r).
verify_peer: boolWhether to verify the server’s certificate chain.
Real browsers always verify certificates. Disable only for testing or local proxy interception.
Trait Implementations§
Source§impl Clone for TlsProfile
impl Clone for TlsProfile
Source§fn clone(&self) -> TlsProfile
fn clone(&self) -> TlsProfile
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for TlsProfile
impl Debug for TlsProfile
Source§impl PartialEq for TlsProfile
impl PartialEq for TlsProfile
Source§fn eq(&self, other: &TlsProfile) -> bool
fn eq(&self, other: &TlsProfile) -> bool
self and other values to be equal, and is used by ==.impl Copy for TlsProfile
impl Eq for TlsProfile
impl StructuralPartialEq for TlsProfile
Auto Trait Implementations§
impl Freeze for TlsProfile
impl RefUnwindSafe for TlsProfile
impl Send for TlsProfile
impl Sync for TlsProfile
impl Unpin for TlsProfile
impl UnsafeUnpin for TlsProfile
impl UnwindSafe for TlsProfile
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.