Currently has 2 implementations to support iOS and Desktop app.
URLSession matches Safari JA3 and HTTP2 signatures for texts-app-ios usage.
Primarily used for texts-app-desktop. This uses patched async-http-client and its dependencies to mimic the JA3 and HTTP2 signature of Chrome.
We had to patch this to match the HTTP2 client signature of Chrome
Added support for the following features not implemented in upstream. This was also needed to match the JA3 signature of Chrome. The configuration and settings were taken from the Chromium source code.
- Brotli Certificate Decompression
- Explicit SSL renegotiation
- Application Settings (
CNIOBoringSSL_SSL_add_application_settings(self.ssl, "h2", 2, nil, 0)
) - OCSP stapling
- Enable GREASE/RFC8701