Commit Graph

270 Commits

Author SHA1 Message Date
lwthiker
822dbefe42
Build on macos-14 GitHub runner (Mac M1) in CI (#223) 2024-03-03 15:29:43 +02:00
lwthiker
f49b5b216f
Merge pull request #224 from lwthiker/patch-cve-2023-38545
Patch CVE-2023-38545
2024-03-03 14:28:34 +02:00
lwthiker
e7b90a0d9c Patch CVE-2023-38545
CVE-2023-38545 is a high severity heap overflow affecting curl 7.69.0 to
8.3.0, including 8.1.1 which we use for curl-impersonate. Patches were
released for older versions. Apply the patch for our version.

For more details, see https://curl.se/docs/CVE-2023-38545.html
2024-03-03 13:44:12 +02:00
lwthiker
6620b0821e Bump version to 0.6.1 2024-03-02 20:01:11 +02:00
lwthiker
b5aa022a9a Add unofficial Homebrew receipts to README 2024-03-02 19:25:50 +02:00
lwthiker
7a043aac03
Merge pull request #217 from lwthiker/upgrade-boringssl
Upgrade BoringSSL version
2024-03-02 19:16:20 +02:00
lwthiker
094ad0b709
Merge pull request #222 from lwthiker/fix-macos-precompiled-binaries
Disable extraneous linking in released binaries
2024-03-02 18:36:34 +02:00
lwthiker
c8465c126b Disable extraneous linking in released binaries
Libraries present on the CI runner system might affect the released
binaries. Specifically, the MacOS runner in GitHub has librtsp, libidn2
and zstd installed, which makes curl link against them.

Explicitly disable these linking, as we want to keep the precompiled
binaries in our releases with minimal requirements. A user wishing to
use these specific features can build from source on a system with these
libraries present.
2024-03-02 17:16:57 +02:00
lwthiker
6d04ffee27 Use an even newer version of BoringSSL
Use the latest 'chromium-stable' tag, which has fixes for compiling with
gcc 13.
2024-02-29 22:38:23 +02:00
lwthiker
43c4b38ef9 Install newer version of Go lang using Snap in CI 2024-02-29 22:01:52 +02:00
lwthiker
79942b00ea Update BoringSSL patch to handle Safari quirks 2024-02-29 21:28:53 +02:00
lwthiker
45a364bd22
Merge pull request #221 from lwthiker/fix-memleak-in-tool-getparam
Fix memory leak due curl-impersonate custom args
2024-02-27 21:49:19 +02:00
lwthiker
3e7c3ef514
Merge pull request #220 from lwthiker/fix-docker-without-wss
Fix Docker build missing websocket support
2024-02-27 20:57:18 +02:00
lwthiker
e82bd9679d Fix memory leak due curl-impersonate custom args 2024-02-27 20:47:56 +02:00
lwthiker
d90993cf06 Fix Docker build missing websocket support
The Docker image first builds a static curl-impersonate, then builds
libcurl-impersonate separately. However, the second build overrode the
binary created in the first one, and was configured without websocket
support in addition. This commit fixes both:
* The second build does not override the first, static build.
* The second build is configured with websockets.
2024-02-27 20:13:34 +02:00
lwthiker
c1b278e671 Upgrade BoringSSL version
Upgrade to commit d24a38200fef19150eef00cad35b138936c08767, which is the
current 'chromium-stable' tag.
2024-02-10 19:55:59 +02:00
lwthiker
1f2bbd6565 Update zlib version in CI tests 2024-02-10 18:59:23 +02:00
lwthiker
7bca88691d Bump version to 0.6.0 2024-02-10 18:50:57 +02:00
lwthiker
845db62e79
Merge pull request #186 from lwthiker/enable_websocket
Build curl with websocket support
2023-09-18 13:03:54 +03:00
lwthiker
d050701b7c Build curl with websocket support
Enable curl's websocket handling with --enable-websockets.
2023-09-16 11:18:45 +03:00
Alexandre Alapetite
172f5185cc
Update Docker base images (#168)
Update Docker base images to debian bookworm.
Reduce size of Debian image (remove apt cache) by 10MB
And also minor Markdown lint of INSTALL.md

---------

Co-authored-by: lwthiker <lwt@lwthiker.com>
2023-09-16 11:16:41 +03:00
lwthiker
1e8b50f2ce
Merge pull request #185 from lwthiker/remove_false_start
Remove --false-start flag
2023-09-16 09:53:02 +03:00
lwthiker
686cb75967 Remove --false-start flag
Remove the --false-start flag completely. In the Chrome version it has
no affect, and in the Firefox version it may cause connection errors.
This flag doesn't seem to affect TLS or HTTP signatures so is safe to
remove.

The flag seems to cause connection errors with some
http/2 servers. The server chooses http/2 based on alpn but curl
initiates a http/1.1 connection instead. This is an upstream bug in curl
that affects us as well.
2023-09-16 09:09:00 +03:00
lwthiker
c7ea3694bb
Merge pull request #184 from lwthiker/chrome116_and_ff_117
Add new Chrome (116) and Firefox (117) versions
2023-09-15 18:49:21 +03:00
lwthiker
fe90762831 Add new Chrome (116) and Firefox (117) versions 2023-09-15 18:15:44 +03:00
lwthiker
b0c725fcf5
Upgrade nss to 3.92 (#176)
The nss version currently in use does not build with gcc 13. Upgrade to
nss 3.92.
2023-09-15 18:07:51 +03:00
lwthiker
d48a572344
Upgrade baseline curl to 8.1.1 (#160)
* Upgrade baseline curl to 8.1.1

New curl version includes bugfixes, new options but mainly websocket
support which was long requested in curl impersonate. Upstream curl
reworked a lot of their http2 code which necessitated a lot of changes
on our side as well.

* Fix build on mac due to bad header priorities

On macos, clang gives priority to /usr/local/include
over locations specified with -isystem for some unknown reason. In turn
this causes clang to use the system's openssl, which conflicts with
curl-impersonate's boringssl headers.
To prevent that, disable curl's automatic conversion of -I flags to
-isystem.

* Upgrade zlib version

* Upgrade GitHub Mac runner to macos-12

* Upgrade nghttp2 version to 1.56.0

curl-8.1.1 uses an nghttp2 function that only exists in newer versions
of nghttp2.
2023-09-15 17:46:02 +03:00
djoldman
b4c4a7374c
Fix typos in 02_USAGE.md (#171) 2023-08-29 11:49:43 +03:00
Rasselio Diack
c12ac8b125
Update INSTALL.md for macOS steps (#172) 2023-08-29 11:49:19 +03:00
Nico Kokonas
d1d9264f55
Fix typos in usage docs (#152) 2023-08-10 14:08:36 +03:00
Brett Jia
9303ce340f
Cross-compile armv7l binaries for 32-bit Raspberry Pi's (#167)
Build arm binaries for 32-bit architecture.
Use patch based on https://github.com/curl/curl/pull/9054.
2023-07-17 10:37:06 +03:00
lwthiker
e987cd6646 Update version and README 2023-02-26 10:23:39 +02:00
lwthiker
9d05a81030
Impersonate Chrome 110 (#148)
Add support for impersonating Chrome 110. Chrome 110 comes with TLS
extension permutation enabled by default. We mimic this behavior in libcurl with
the new CURLOPT_SSL_PERMUTE_EXTENSIONS option, which enables the
corresponding flag in BoringSSL.

---------

Co-authored-by: Johann Saunier <saunier.johann@gmail.com>
2023-02-25 11:29:14 +02:00
lwthiker
b2b1ea0f8e
Merge pull request #140 from lwthiker/firefox109
Impersonate Firefox 109
2023-01-29 10:05:05 +02:00
lwthiker
54693023a3 Impersonate Firefox 109
Firefox impersonation was not updated in a long while. Add impersonation
for Firefox 109. The TLS signature is identical to previous versions,
with the usual changes to the HTTP headers.

Update NSS to the latest version as well, even though it is not
strictly necessary for the impersonation.
2023-01-28 18:37:40 +02:00
lwthiker
c011dbc2b2
Merge pull request #123 from lwthiker/chrome107
Add support for impersonating Chrome 107
2022-11-14 14:03:35 +02:00
lwthiker
ba6f29dfc6 Remove nss verbose build flag
Remove the verbose build flag that was previously added for debugging.
2022-11-14 13:49:11 +02:00
lwthiker
50b13b1db5 Use Python 3.10 in GitHub workflow
Python 3.11 breaks the gyp-next pip package which is used in the build
process to compile nss. It seems that gyp-next has no updated version to
fix that. Use Python 3.10 instead as a temporary fix.
2022-11-14 11:23:01 +02:00
lwthiker
094158f164 Make NSS build verbose for debugging 2022-11-14 10:17:11 +02:00
lwthiker
74c44c890f Add missing wrapper script and fix README 2022-11-13 08:16:45 +02:00
lwthiker
5fac7d22c8 Use zlib-1.2.13 when cross compiling
zlib-1.2.12 seems to be unavailable anymore. Upgrade to 1.2.13.
2022-11-12 22:12:20 +02:00
lwthiker
1ab42e1111 Add support for impersonating Chrome 107
Chrome 107 was recently released. The only difference in signature from
previous Chrome versions is that an HTTP2_NO_SERVER_PUSH setting is sent
in the HTTP2 SETTINGS frame.
2022-11-12 21:49:35 +02:00
lwthiker
89eef11ba4
Merge pull request #118 from wrobelda/docker_bullseye
Dockerfile: use bullseye as Debian base
2022-10-08 12:16:54 +03:00
lwthiker
6d61f7dbdd
Merge pull request #117 from lilyinstarlight/fix/disable-static
Fix --disable-static and --enable-static=no
2022-10-08 11:42:41 +03:00
Dawid Wróbel
f8be027a2a Dockerfile: use bullseye as Debian base 2022-10-05 17:11:24 +02:00
Lily Foster
4a9c4027b8
Fix --disable-static and --enable-static=no 2022-10-03 20:13:43 -04:00
lwthiker
f36059324c
Merge pull request #110 from lwthiker/release_0_5_3
Release version 0.5.3
2022-09-15 15:54:37 +03:00
lwthiker
e21295a321 Increase version to 0.5.3 2022-09-15 14:35:33 +03:00
lwthiker
15800b30f8
Merge pull request #108 from lwthiker/docs
Create docs/ folder with initial content
2022-09-10 19:12:58 +03:00
lwthiker
917f2988b6 Fix documentation links 2022-09-10 19:11:45 +03:00