Expand description
TLS fingerprint profile types with JA3/JA4 representation.
ALPN preferences that match genuine browsers.
§Built-in profiles
Four static profiles ship with real-world TLS parameters:
| Profile | Browser |
|---|---|
CHROME_131 | Google Chrome 131 |
FIREFOX_133 | Mozilla Firefox 133 |
SAFARI_18 | Apple Safari 18 |
EDGE_131 | Microsoft Edge 131 |
§Example
use stygian_browser::tls::{CHROME_131, TlsProfile};
let profile: &TlsProfile = &*CHROME_131;
assert_eq!(profile.name, "Chrome 131");
let ja3 = profile.ja3();
assert!(!ja3.raw.is_empty());
assert!(!ja3.hash.is_empty());
let ja4 = profile.ja4();
assert!(ja4.fingerprint.starts_with("t13"));Structs§
- Cipher
Suite Id - TLS cipher-suite identifier (IANA two-byte code point).
- Http3
Perk SETTINGS|PSEUDO_HEADERS.- Http3
Perk Comparison - Result of comparing expected and observed HTTP/3 perk data.
- Ja4
- Example
- Ja3Hash
- Fields within each section are dash-separated.
- Profile
Metadata - Metadata describing the provenance of a
TlsProfilePack. - Signature
Algorithm - TLS signature algorithm identifier (IANA two-byte code point).
- TlsClient
Config - Wrapper around
Arc<rustls::ClientConfig>built from aTlsProfile. - TlsControl
- This struct lets callers choose between broad compatibility and strict
- TlsExtension
Id - TLS extension identifier (IANA two-byte code point).
- TlsProfile
- A complete TLS fingerprint profile matching a real browser’s
ClientHello. - TlsProfile
Pack - A versioned TLS profile bundle pairing a
TlsProfilewith itsProfileMetadata.
Enums§
- Alpn
Protocol - Example
- Browser
Family - Browser family for a TLS profile pack.
- Platform
Class - Operating system platform class for a TLS profile pack.
- Profile
Channel - Named update channel for automatic profile resolution.
- Profile
Channel Error - Error returned when a profile channel cannot be resolved.
- Supported
Group - Named group (elliptic curve / key-exchange group) identifier.
- TlsClient
Error - Error building a TLS-profiled reqwest client.
- TlsConfig
Error - Error building a rustls
ClientConfigfrom aTlsProfile. - TlsVersion
- Example
Statics§
- CHROME_
131 - Google Chrome 131 TLS fingerprint profile.
- EDGE_
131 - Microsoft Edge 131 TLS fingerprint profile.
- FIREFOX_
133 - Mozilla Firefox 133 TLS fingerprint profile.
- PACK_
CHROME_ 131 - Chrome 131 profile pack.
- PACK_
EDGE_ 131 - Edge 131 profile pack.
- PACK_
FIREFOX_ 133 - Firefox 133 profile pack.
- PACK_
SAFARI_ 18 - Safari 18 profile pack.
- SAFARI_
18 - Apple Safari 18 TLS fingerprint profile.
Functions§
- browser_
headers - HTTP headers that match the browser identity of
profile. - build_
profiled_ client - Build a [
reqwest::Client] whose TLSClientHellomatchesprofile. - build_
profiled_ client_ preset - Build a [
reqwest::Client] using profile-specific control presets. - build_
profiled_ client_ strict - Build a strict TLS-profiled [
reqwest::Client]. - build_
profiled_ client_ with_ control - Build a [
reqwest::Client] with explicit TLS profile control settings. - chrome_
tls_ args - What flags control
- default_
user_ agent - Return a User-Agent string that matches the given TLS profile’s browser.
- expected_
http3_ perk_ from_ user_ agent - Build an expected HTTP/3 perk fingerprint from a User-Agent string.
- expected_
ja3_ from_ user_ agent - expected_
ja4_ from_ user_ agent - expected_
tls_ profile_ from_ user_ agent - Returns the
TlsProfilefor the given user-agent string, if known. - profile_
for_ device - Select the built-in
TlsProfilethat best matches aDeviceProfile.