Conversation
|
Thank you for the pull request, I'll review this soon. Does this work with base tlslite? |
|
Base tlslite always automatically adds 255 handshake at the first of ja3, so I use a modified on my GitHub account, with handshake reorder fix |
|
As I tested, on my phone, Chrome on IOS using Safari/Webkit instead of Chromium, I think I will remove user_agents and bring a better way to parse the ua |
|
I just found Firefox iOS is using Safari/Webkit too |
|
I just removed the user_agents library required, and now it support mostly every user agent |
|
And I fix the wrong Firefox Mobile 143 akamai string |
|
Building our own UA Parser is a rough job, let's leave it as a dependency for now. Have you checked that all extensions required by the ja3 strings you have added are supported? |
|
I checked which extension are supported, others like Client Hello Encrypt,… I added to ignore list. And I created a minimal UAparser using re just for parsing ua core, version and device, now it supports most available UA strings |
|
As I tested, it work better than user_agents. |
|
And if we use user_agents, we need to add each possible agent, like edge, Vivaldi, Yandex, DuckDuckGo,… and what I add is make all will return Chromium for windows and android and macos, iOS will return Safari,… |
…esktop akamai string on MacOS 26
|
I idk why akamai string on my own PC is difference with other one, so I use VMware to get fresh device, and I just updated what I get from VM |
|
Okay I found the Problem here, on my PC I have bypass DPI Blocking with Adguard windows, so it akamai string is difference than what original. |
|
I just add ignore for SETTINGS_NO_RFC7540_PRIORITIES (0x9) because tlslite-ng not support |
|
I just added Random TLS extension order for better impersonate |
There was a problem hiding this comment.
Pull request overview
Updates the project’s fingerprint databases and adds a new “random TLS extension order” capability, alongside packaging/dependency and documentation updates.
Changes:
- Updated browser JA3/Akamai fingerprint data and simplified UA parsing logic.
- Added TLS extension-order randomization controls across
TLSProfileandAsyncTLSClient. - Updated packaging metadata/dependencies and expanded documentation + added an example script.
Reviewed changes
Copilot reviewed 9 out of 11 changed files in this pull request and generated 14 comments.
Show a summary per file
| File | Description |
|---|---|
| setup.py | Bumps version, updates repo URL, expands Python classifiers, switches tlslite-ng dependency source. |
| requirements.txt | Adds git-based tlslite-ng dependency for installs/dev. |
| httpx_tls/profiles.py | Adds extension-order randomization option and propagates it through profile constructors. |
| httpx_tls/mocks.py | Updates wrap_bio signature to accept session for stdlib compatibility. |
| httpx_tls/database.py | Refreshes fingerprint ranges and replaces user_agents parsing with a simplified UA parser. |
| httpx_tls/constants.py | Extends HTTP/2 settings mapping and TLS extension constants for newer fingerprints. |
| httpx_tls/client.py | Adds randomize_tls_extensions option and attempts to apply it to provided TLS profiles. |
| example_randomization.py | New example demonstrating extension-order randomization usage. |
| README.md | Major documentation refresh including randomization feature and updated usage notes. |
| RANDOM_EXTENSION_ORDER.md | New doc detailing the random extension order feature and usage. |
| .gitignore | Adds additional ignore patterns (including tests, examples, and tlslite-ng directory). |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
I update database up-to-data and various fix for keep it working