https://github.com/ooni/utls-light
Minimal version of utls for parrotting the TLS handshake of popular web browsers
https://github.com/ooni/utls-light
Last synced: 12 months ago
JSON representation
Minimal version of utls for parrotting the TLS handshake of popular web browsers
- Host: GitHub
- URL: https://github.com/ooni/utls-light
- Owner: ooni
- License: bsd-3-clause
- Created: 2022-09-05T12:44:26.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2024-12-05T23:04:08.000Z (over 1 year ago)
- Last Synced: 2025-07-01T15:22:06.139Z (about 1 year ago)
- Language: Go
- Homepage:
- Size: 662 KB
- Stars: 25
- Watchers: 7
- Forks: 3
- Open Issues: 1
-
Metadata Files:
- Readme: Readme.md
- License: LICENSE
Awesome Lists containing this project
README
# UTLS Light
This is a light version of
[refraction-networking/utls](https://github.com/refraction-networking/utls)
with a focus on parrotting a single browser and hence implementing only the
strict minimal set of features needed for that.
Design goals:
* Parroting the most popular browser out there (Google Chrome)
* Smallest number of changes to the go/tls codepath
* It should be possible to easily inspect the diff with upstream (see the [diff for the last update](https://github.com/ooni/utls-light/compare/2b6c2ef3b403d1a30ddb395df58171ddd004a344...4dfb1fc05321b947dbee87f475f4159c40beb22d))
Non-goals:
* Pluggable support for multiple TLS fingerprints
Thanks to @FiloSottile for the insight and suggestion to take the approach of
parsing the raw ClientHello bytes and re-serialising them.