Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update to curl 8.7.1 #67

Merged
merged 22 commits into from
Jun 19, 2024
Merged
Show file tree
Hide file tree
Changes from 16 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 7 additions & 5 deletions Makefile.in
Original file line number Diff line number Diff line change
Expand Up @@ -9,16 +9,17 @@ SHELL := bash
# MAKEFLAGS += --no-builtin-rules
SUBJOBS := 4

BROTLI_VERSION := 1.0.9
BROTLI_VERSION := 1.1.0
# In case this is changed, update build-and-test-make.yml as well
# In case this is changed, update build-and-test-make.yml as well
BORING_SSL_COMMIT := d24a38200fef19150eef00cad35b138936c08767
NGHTTP2_VERSION := nghttp2-1.56.0
NGHTTP2_URL := https://github.com/nghttp2/nghttp2/releases/download/v1.56.0/nghttp2-1.56.0.tar.bz2
CURL_VERSION := curl-8_5_0
NGHTTP2_VERSION := nghttp2-1.61.0
NGHTTP2_URL := https://github.com/nghttp2/nghttp2/releases/download/v1.61.0/nghttp2-1.61.0.tar.bz2
CURL_VERSION := curl-8_7_1

# https://github.com/google/brotli/commit/641bec0e30bea648b3da1cd90fc6b44deb429f71
brotli_install_dir := $(abspath brotli-$(BROTLI_VERSION)/out/installed)
brotli_static_libs := $(brotli_install_dir)/lib/libbrotlicommon-static.a $(brotli_install_dir)/lib/libbrotlidec-static.a
brotli_static_libs := $(brotli_install_dir)/lib/libbrotlicommon.a $(brotli_install_dir)/lib/libbrotlidec.a
boringssl_install_dir := $(abspath boringssl/build)
boringssl_static_libs := $(boringssl_install_dir)/lib/libssl.a $(boringssl_install_dir)/lib/libcrypto.a
nghttp2_install_dir := $(abspath $(NGHTTP2_VERSION)/installed)
Expand Down Expand Up @@ -144,6 +145,7 @@ $(brotli_static_libs): brotli-$(BROTLI_VERSION).tar.gz
-DCMAKE_C_FLAGS="$(CFLAGS)" \
-DCMAKE_SYSTEM_NAME=$$system_name \
-DCMAKE_SYSTEM_PROCESSOR=$(host_cpu) \
-DBUILD_SHARED_LIBS=OFF \
..

@cmake@ --build . --config Release --target install --parallel $(SUBJOBS)
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
> 2. ZSTD compression support introduced in Chrome 123.
> 3. X25519Kyber768 curve introduced in Chrome 124.
> 4. More options for impersonation Akamai http/2 fingerprints, especially for Safari.
> 5. Upgrade to more recent version of curl, 8.5.0 as of April, 2024.
> 5. Upgrade to more recent version of curl, 8.7.1 as of April, 2024.
> 6. Ability to change extension orders and enable/disable TLS grease.
> 7. (In progress) Single binary to support both Webkit-based and Gecko-based browsers, i.e. Chrome and Firefox.

Expand Down
2 changes: 2 additions & 0 deletions chrome/curl_chrome100
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ dir=${0%/*}
--http2 \
--http2-settings '1:65536;3:1000;4:6291456;6:262144' \
--http2-window-update 15663105 \
--http2-stream-weight 256 \
--http2-stream-exclusive 1 \
--compressed \
--tlsv1.2 --alps \
--cert-compression brotli \
Expand Down
2 changes: 2 additions & 0 deletions chrome/curl_chrome101
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ dir=${0%/*}
--http2 \
--http2-settings '1:65536;3:1000;4:6291456;6:262144' \
--http2-window-update 15663105 \
--http2-stream-weight 256 \
--http2-stream-exclusive 1 \
--compressed \
--tlsv1.2 --alps \
--cert-compression brotli \
Expand Down
2 changes: 2 additions & 0 deletions chrome/curl_chrome104
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ dir=${0%/*}
--http2 \
--http2-settings '1:65536;3:1000;4:6291456;6:262144' \
--http2-window-update 15663105 \
--http2-stream-weight 256 \
--http2-stream-exclusive 1 \
--compressed \
--tlsv1.2 --alps \
--cert-compression brotli \
Expand Down
2 changes: 2 additions & 0 deletions chrome/curl_chrome107
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ dir=${0%/*}
--http2 \
--http2-settings '1:65536;2:0;3:1000;4:6291456;6:262144' \
--http2-window-update 15663105 \
--http2-stream-weight 256 \
--http2-stream-exclusive 1 \
--compressed \
--tlsv1.2 --alps \
--cert-compression brotli \
Expand Down
2 changes: 2 additions & 0 deletions chrome/curl_chrome110
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ dir=${0%/*}
--http2 \
--http2-settings '1:65536;2:0;3:1000;4:6291456;6:262144' \
--http2-window-update 15663105 \
--http2-stream-weight 256 \
--http2-stream-exclusive 1 \
--compressed \
--tlsv1.2 --alps --tls-permute-extensions \
--cert-compression brotli \
Expand Down
2 changes: 2 additions & 0 deletions chrome/curl_chrome116
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ dir=${0%/*}
--http2 \
--http2-settings '1:65536;2:0;3:1000;4:6291456;6:262144' \
--http2-window-update 15663105 \
--http2-stream-weight 256 \
--http2-stream-exclusive 1 \
--compressed \
--tlsv1.2 --alps --tls-permute-extensions \
--cert-compression brotli \
Expand Down
2 changes: 2 additions & 0 deletions chrome/curl_chrome119
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ dir=${0%/*}
--http2 \
--http2-settings '1:65536;2:0;4:6291456;6:262144' \
--http2-window-update 15663105 \
--http2-stream-weight 256 \
--http2-stream-exclusive 1 \
--compressed \
--ech GREASE \
--tlsv1.2 --alps --tls-permute-extensions \
Expand Down
2 changes: 2 additions & 0 deletions chrome/curl_chrome120
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ dir=${0%/*}
--http2 \
--http2-settings '1:65536;2:0;4:6291456;6:262144' \
--http2-window-update 15663105 \
--http2-stream-weight 256 \
--http2-stream-exclusive 1 \
--compressed \
--ech GREASE \
--tlsv1.2 --alps --tls-permute-extensions \
Expand Down
2 changes: 2 additions & 0 deletions chrome/curl_chrome123
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ dir=${0%/*}
--http2 \
--http2-settings '1:65536;2:0;4:6291456;6:262144' \
--http2-window-update 15663105 \
--http2-stream-weight 256 \
--http2-stream-exclusive 1 \
--compressed \
--ech GREASE \
--tlsv1.2 --alps --tls-permute-extensions \
Expand Down
2 changes: 2 additions & 0 deletions chrome/curl_chrome124
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@ dir=${0%/*}
--http2 \
--http2-settings '1:65536;2:0;4:6291456;6:262144' \
--http2-window-update 15663105 \
--http2-stream-weight 256 \
--http2-stream-exclusive 1 \
--compressed \
--ech GREASE \
--tlsv1.2 --alps --tls-permute-extensions \
Expand Down
2 changes: 2 additions & 0 deletions chrome/curl_chrome99
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ dir=${0%/*}
--http2 \
--http2-settings '1:65536;3:1000;4:6291456;6:262144' \
--http2-window-update 15663105 \
--http2-stream-weight 256 \
--http2-stream-exclusive 1 \
--compressed \
--tlsv1.2 --alps \
--cert-compression brotli \
Expand Down
2 changes: 2 additions & 0 deletions chrome/curl_chrome99_android
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ dir=${0%/*}
--http2 \
--http2-settings '1:65536;3:1000;4:6291456;6:262144' \
--http2-window-update 15663105 \
--http2-stream-weight 256 \
--http2-stream-exclusive 1 \
--compressed \
--tlsv1.2 --alps \
--cert-compression brotli \
Expand Down
2 changes: 2 additions & 0 deletions chrome/curl_edge101
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ dir=${0%/*}
--http2 \
--http2-settings '1:65536;3:1000;4:6291456;6:262144' \
--http2-window-update 15663105 \
--http2-stream-weight 256 \
--http2-stream-exclusive 1 \
--compressed \
--tlsv1.2 --alps \
--cert-compression brotli \
Expand Down
2 changes: 2 additions & 0 deletions chrome/curl_edge99
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ dir=${0%/*}
--http2 \
--http2-settings '1:65536;3:1000;4:6291456;6:262144' \
--http2-window-update 15663105 \
--http2-stream-weight 256 \
--http2-stream-exclusive 1 \
--compressed \
--tlsv1.2 --alps \
--cert-compression brotli \
Expand Down
2 changes: 2 additions & 0 deletions chrome/curl_safari15_3
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ dir=${0%/*}
--http2-settings '4:4194304;3:100' \
--http2-pseudo-headers-order 'mspa' \
--http2-window-update 10485760 \
--http2-stream-weight 255 \
--http2-stream-exclusive 0 \
--compressed \
--tlsv1.0 --no-tls-session-ticket \
--tls-grease \
Expand Down
2 changes: 2 additions & 0 deletions chrome/curl_safari15_5
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ dir=${0%/*}
--http2-settings '4:4194304;3:100' \
--http2-pseudo-headers-order 'mspa' \
--http2-window-update 10485760 \
--http2-stream-weight 255 \
--http2-stream-exclusive 0 \
--compressed \
--tlsv1.0 --no-tls-session-ticket \
--cert-compression zlib \
Expand Down
2 changes: 2 additions & 0 deletions chrome/curl_safari17_0
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ dir=${0%/*}
--http2-settings '2:0;4:4194304;3:100' \
--http2-pseudo-headers-order 'mspa' \
--http2-window-update 10485760 \
--http2-stream-weight 255 \
--http2-stream-exclusive 0 \
--compressed \
--tlsv1.0 --no-tls-session-ticket \
--cert-compression zlib \
Expand Down
2 changes: 2 additions & 0 deletions chrome/curl_safari17_2_ios
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ dir=${0%/*}
--http2-settings '2:0;4:2097152;3:100' \
--http2-pseudo-headers-order 'mspa' \
--http2-window-update 10485760 \
--http2-stream-weight 255 \
--http2-stream-exclusive 0 \
--compressed \
--tlsv1.0 --no-tls-session-ticket \
--cert-compression zlib \
Expand Down
14 changes: 14 additions & 0 deletions chrome/patches/boringssl.patch
Original file line number Diff line number Diff line change
Expand Up @@ -232,6 +232,20 @@ index c9facb699..eab61611e 100644
X509_STORE *cert_store = nullptr;
LHASH_OF(SSL_SESSION) *sessions = nullptr;
// Most session-ids that will be cached, default is
diff --git a/ssl/ssl_cert.cc b/ssl/ssl_cert.cc
index aa46a8bb6..4e5bddd89 100644
--- a/ssl/ssl_cert.cc
+++ b/ssl/ssl_cert.cc
@@ -602,8 +602,7 @@ bool ssl_cert_check_key_usage(const CBS *in, enum ssl_key_usage_t bit) {
}

if (!CBS_asn1_bitstring_has_bit(&bit_string, bit)) {
- OPENSSL_PUT_ERROR(SSL, SSL_R_KEY_USAGE_BIT_INCORRECT);
- return false;
+ // curl-impersonate: bypass the key usage check
}

return true;
diff --git a/ssl/ssl_cipher.cc b/ssl/ssl_cipher.cc
index fd8cef95d..3d2c8ff6d 100644
--- a/ssl/ssl_cipher.cc
Expand Down
Loading
Loading