A high-level implementation of ClienHelloOverride
from patched rustls, as
well as JA3/JA4 support.
- Allow modifying
ClientHello
fingerprints of all TLS requests initiated byrustls
. - Import fingerprint from a JA3-full string and check its JA3/JA4 fingerprints.
- Utilities for creating some extensions easily, e.g. grease ECH.
We use the forked version of rustls with necessary modifications. Every rustls
version has a corresponding branch in the
forked repository. See the next section for more details.
rustls@0.23.12
: 'v0.23.12'rustls@0.23.4
: 'unofficial-rel-0.23'
Because this crate relies on the patched rustls
, it's impossible to directly use it from crates.io.
Instead, you need to use it by adding the following to your Cargo.toml
:
ja-tools = { git = "https://github.com/XOR-op/ja-tools.git", branch = "main" }
and add the following to your root Cargo.toml
of the workspace (if you have only one Cargo.toml
file, add there):
[patch.crates-io]
rustls = { git = "https://github.com/XOR-op/rustls.delta.git", branch = "v0.23.12" }
Adding these will resolve all the same version rustls
in the direct or indirect dependencies to the patched crate.
If a different version of rustls
is used by one dependency, this crate will not work on that particular dependency.
This project is licensed under the MIT License.