Skip to content

1.0.3 - SSLv3 Support and Enhancements

Latest

Choose a tag to compare

@jasonacox jasonacox released this 06 Jan 03:38
0422b2f

Release 8.17.0 Library and Headers

This release includes cURL, OpenSSL and Nghttp2 libraries and header files for MacOS, Mac Catalyst, iOS and tvOS projects.

  • Added SSLv3 support for security testing with -3 flag. This allows verification that servers properly reject SSLv3 connections. Includes compatibility updates for OpenSSL 3.x which removed the SSLv3_client_method() function.
  • Enhanced SSLv3 patch (sslv3.patch) to work with OpenSSL 3.x using SSL_CTX_set_min_proto_version() and SSL_CTX_set_max_proto_version() APIs.
  • Added automatic SSLv3 support verification in build script when -3 flag is used.
  • Updated iCurlHTTP.sh script to copy all .xcframework folders from archive/latest/xcframework to support modern Xcode projects.
  • Fixed libcurl-build.sh SSLv3 patching for curl 8.17.0+ to properly handle the new command-line argument processing in tool_getparam.c.
  • Improved documentation with detailed patch file comments.

Build Command

./build.sh -3 -m

Versions

LIBCURL="8.17.0"        # https://curl.haxx.se/download.html
OPENSSL="3.0.18"        # https://www.openssl.org/source/
NGHTTP2="1.68.0"        # https://nghttp2.org/

Archive

This directory contains the curl and openssl headers (in the include folder), the *.a libraries and XCFrameworks along with MacOS executable binaries for curl and openssl (intel x86_64 and Apple silicon arm64).

|__libcurl-8.17.0-openssl-3.0.18-nghttp2-1.68.0
    |
    |__ bin/
    │   |__ curl*  (universal binary)
    │   |__ curl-arm64*
    │   |__ curl-x86_64*
    │   |__ openssl*  (universal binary)
    │   |__ openssl-arm64*
    │   |__ openssl-x86_64*
    |
    |__ cacert.pem
    |
    |__ include/
    │   |__ curl/
    │   |__ openssl/
    |
    |__ lib/
    │   |__ Catalyst/
    │   |__ MacOS/
    │   |__ iOS/
    │   |__ iOS-fat/
    │   |__ iOS-simulator/
    │   |__ tvOS/
    │   |__ tvOS-simulator/
    |
    |__ xcframework/
        |__ libcrypto.xcframework/
        │   |__ ios-arm64_arm64e_armv7_armv7s/
        │   |__ ios-arm64_i386_x86_64-simulator/
        │   |__ tvos-arm64/
        │   |__ tvos-arm64_x86_64-simulator/
        |__ libcurl.xcframework/
        │   |__ ios-arm64_arm64e_armv7_armv7s/
        │   |__ ios-arm64_i386_x86_64-simulator/
        │   |__ tvos-arm64/
        │   |__ tvos-arm64_x86_64-simulator/
        |__ libnghttp2.xcframework/
        │   |__ ios-arm64_arm64e_armv7_armv7s/
        │   |__ ios-arm64_i386_x86_64-simulator/
        │   |__ tvos-arm64/
        │   |__ tvos-arm64_x86_64-simulator/
        |__ libssl.xcframework/
            |__ ios-arm64_arm64e_armv7_armv7s/
            |__ ios-arm64_i386_x86_64-simulator/
            |__ tvos-arm64/
            |__ tvos-arm64_x86_64-simulator/

Usage

  1. Copy headers to your project.
  2. Import XCFrameworks: Import appropriate xcframework folders into your project in Xcode.
    Alternative: Import appropriate libraries: "libssl.a", "libcrypto.a", "libcurl.a", "libnghttp2.a"
  3. Reference Headers.
  4. If required, specify the flag "-lz" in "Other Linker Flags" (OTHER_LDFLAGS) setting in the "Linking" section in the Build settings of the target.
  5. Initialize curl in your code:
        #include <curl/curl.h>

        (void)foo {    
            CURL* cURL = curl_easy_init();  
            // ...  
        }