Skip to main content

Module tls

Module tls 

Source
Expand description

TLS fingerprint profile types with JA3/JA4 representation.

Provides domain types for modelling real browser TLS fingerprints so that automated sessions present cipher-suite orderings, extension lists, and ALPN preferences that match genuine browsers.

§Built-in profiles

Four static profiles ship with real-world TLS parameters:

ProfileBrowser
CHROME_131Google Chrome 131
FIREFOX_133Mozilla Firefox 133
SAFARI_18Apple Safari 18
EDGE_131Microsoft 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§

CipherSuiteId
TLS cipher-suite identifier (IANA two-byte code point).
Ja4
JA4 TLS fingerprint — the modern successor to JA3.
Ja3Hash
JA3 TLS fingerprint — raw descriptor string and its MD5 hash.
SignatureAlgorithm
TLS signature algorithm identifier (IANA two-byte code point).
TlsExtensionId
TLS extension identifier (IANA two-byte code point).
TlsProfile
A complete TLS fingerprint profile matching a real browser’s ClientHello.

Enums§

AlpnProtocol
ALPN protocol identifier negotiated during the TLS handshake.
SupportedGroup
Named group (elliptic curve / key-exchange group) identifier.
TlsVersion
TLS protocol version.

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.
SAFARI_18
Apple Safari 18 TLS fingerprint profile.

Functions§

chrome_tls_args
Return Chrome launch flags that constrain TLS behaviour to approximate this profile’s protocol-version range.