aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorViktor Szakats <commit@vsz.me>2023-10-08 17:43:10 +0000
committerViktor Szakats <commit@vsz.me>2023-10-08 22:35:04 +0000
commit0e4bef0862cb6dfb7693b9b67a6835cf85e23e4e (patch)
treed2b28a7bc667e1df7112970b9f55dadc2158fd8b
parent58a95b6a49ab79a7764736cca3cb229620722a58 (diff)
downloadcurl-0e4bef0862cb6dfb7693b9b67a6835cf85e23e4e.tar.gz
h3: add support for ngtcp2 with AWS-LC builds
``` curl 8.4.0-DEV (x86_64-apple-darwin) libcurl/8.4.0-DEV (SecureTransport) AWS-LC/1.15.0 nghttp2/1.56.0 ngtcp2/0.19.1 nghttp3/0.15.0 Release-Date: [unreleased] Protocols: dict file ftp ftps gopher gophers http https imap imaps ldap ldaps mqtt pop3 pop3s rtsp smb smbs smtp smtps telnet tftp ws wss Features: alt-svc AsynchDNS HSTS HTTP2 HTTP3 HTTPS-proxy IPv6 Largefile MultiSSL NTLM SSL threadsafe UnixSockets ``` Also delete an obsolete GnuTLS TODO and update the header comment in `FindNGTCP2.cmake`. Reviewed-by: Daniel Stenberg Closes #12066
-rw-r--r--CMake/FindNGTCP2.cmake6
-rw-r--r--CMakeLists.txt4
-rw-r--r--lib/vquic/curl_ngtcp2.c4
3 files changed, 7 insertions, 7 deletions
diff --git a/CMake/FindNGTCP2.cmake b/CMake/FindNGTCP2.cmake
index ae92e417a..7ea466582 100644
--- a/CMake/FindNGTCP2.cmake
+++ b/CMake/FindNGTCP2.cmake
@@ -31,8 +31,10 @@ Find the ngtcp2 library
This module accepts optional COMPONENTS to control the crypto library (these are
mutually exclusive)::
- OpenSSL: Use libngtcp2_crypto_quictls
- GnuTLS: Use libngtcp2_crypto_gnutls
+ quictls, LibreSSL: Use libngtcp2_crypto_quictls
+ BoringSSL, AWS-LC: Use libngtcp2_crypto_boringssl
+ wolfSSL: Use libngtcp2_crypto_wolfssl
+ GnuTLS: Use libngtcp2_crypto_gnutls
Result Variables
^^^^^^^^^^^^^^^^
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 458b25550..1b19c681d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -668,7 +668,7 @@ if(USE_NGTCP2)
if(USE_OPENSSL OR USE_WOLFSSL)
if(USE_WOLFSSL)
find_package(NGTCP2 REQUIRED wolfSSL)
- elseif(HAVE_BORINGSSL)
+ elseif(HAVE_BORINGSSL OR HAVE_AWSLC)
find_package(NGTCP2 REQUIRED BoringSSL)
else()
find_package(NGTCP2 REQUIRED quictls)
@@ -685,9 +685,7 @@ if(USE_NGTCP2)
if(NOT HAVE_SSL_CTX_SET_QUIC_METHOD)
message(FATAL_ERROR "QUIC support is missing in OpenSSL/LibreSSL/BoringSSL/wolfSSL. Try setting -DOPENSSL_ROOT_DIR")
endif()
-
elseif(USE_GNUTLS)
- # TODO add GnuTLS support as vtls library.
find_package(NGTCP2 REQUIRED GnuTLS)
else()
message(FATAL_ERROR "ngtcp2 requires OpenSSL, wolfSSL or GnuTLS")
diff --git a/lib/vquic/curl_ngtcp2.c b/lib/vquic/curl_ngtcp2.c
index 27711ef0c..795c7140f 100644
--- a/lib/vquic/curl_ngtcp2.c
+++ b/lib/vquic/curl_ngtcp2.c
@@ -30,7 +30,7 @@
#ifdef USE_OPENSSL
#include <openssl/err.h>
-#ifdef OPENSSL_IS_BORINGSSL
+#if defined(OPENSSL_IS_BORINGSSL) || defined(OPENSSL_IS_AWSLC)
#include <ngtcp2/ngtcp2_crypto_boringssl.h>
#else
#include <ngtcp2/ngtcp2_crypto_quictls.h>
@@ -407,7 +407,7 @@ static CURLcode quic_ssl_ctx(SSL_CTX **pssl_ctx,
goto out;
}
-#ifdef OPENSSL_IS_BORINGSSL
+#if defined(OPENSSL_IS_BORINGSSL) || defined(OPENSSL_IS_AWSLC)
if(ngtcp2_crypto_boringssl_configure_client_context(ssl_ctx) != 0) {
failf(data, "ngtcp2_crypto_boringssl_configure_client_context failed");
goto out;