diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index d4903408f4..c1f0a13bd0 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -118,9 +118,9 @@ jobs: PKG_CONFIG_PATH: /home/runner/mbedtls/lib/pkgconfig # Requires v3.6.0 or v2.28.8 generate: -DCURL_USE_MBEDTLS=ON -DENABLE_DEBUG=ON - - name: 'mbedtls-pkg' + - name: 'mbedtls-pkg MultiSSL' install_packages: libnghttp2-dev libmbedtls-dev - generate: -DCURL_USE_MBEDTLS=ON -DENABLE_DEBUG=ON -DBUILD_LIBCURL_DOCS=OFF -DBUILD_MISC_DOCS=OFF -DENABLE_CURL_MANUAL=OFF + generate: -DCURL_USE_MBEDTLS=ON -DENABLE_DEBUG=ON -DCURL_DEFAULT_SSL_BACKEND=mbedtls -DCURL_USE_OPENSSL=ON -DBUILD_LIBCURL_DOCS=OFF -DBUILD_MISC_DOCS=OFF -DENABLE_CURL_MANUAL=OFF - name: 'mbedtls-pkg !pc' install_packages: libnghttp2-dev libmbedtls-dev diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 878a265264..180ae1c577 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -296,10 +296,10 @@ jobs: install: brotli wolfssl zstd install_steps: pytest generate: -DCURL_USE_WOLFSSL=ON -DCURL_DISABLE_LDAP=ON -DUSE_ECH=ON - - name: 'mbedTLS !ldap brotli zstd' + - name: 'mbedTLS !ldap brotli zstd MultiSSL' compiler: llvm@18 install: brotli mbedtls zstd - generate: -DCURL_USE_MBEDTLS=ON -DCURL_DISABLE_LDAP=ON + generate: -DCURL_USE_MBEDTLS=ON -DCURL_DISABLE_LDAP=ON -DCURL_DEFAULT_SSL_BACKEND=mbedtls -DCURL_USE_OPENSSL=ON - name: 'GnuTLS !ldap krb5' install: gnutls nettle krb5 generate: -DENABLE_DEBUG=ON -DCURL_USE_GNUTLS=ON -DCURL_USE_OPENSSL=OFF -DCURL_USE_GSSAPI=ON -DGSS_ROOT_DIR=/opt/homebrew/opt/krb5 -DCURL_DISABLE_LDAP=ON -DUSE_SSLS_EXPORT=ON diff --git a/lib/vtls/vtls.c b/lib/vtls/vtls.c index db4e57342e..d2a53cb44d 100644 --- a/lib/vtls/vtls.c +++ b/lib/vtls/vtls.c @@ -882,6 +882,14 @@ static int multissl_init(void) return 1; } +static CURLcode multissl_random(struct Curl_easy *data, + unsigned char *entropy, size_t length) +{ + if(multissl_setup(NULL)) + return CURLE_FAILED_INIT; + return Curl_ssl->random(data, entropy, length); +} + static CURLcode multissl_connect(struct Curl_cfilter *cf, struct Curl_easy *data, bool *done) { @@ -943,7 +951,7 @@ static const struct Curl_ssl Curl_ssl_multi = { multissl_version, /* version */ NULL, /* shutdown */ NULL, /* data_pending */ - NULL, /* random */ + multissl_random, /* random */ NULL, /* cert_status_request */ multissl_connect, /* connect */ multissl_adjust_pollset, /* adjust_pollset */