summaryrefslogtreecommitdiffhomepage
path: root/auto/lib/openssl/conf
diff options
context:
space:
mode:
authorSergey Kandaurov <pluknet@nginx.com>2025-02-13 17:00:56 +0400
committerRoman Arutyunyan <arutyunyan.roman@gmail.com>2025-05-23 15:00:47 +0400
commit6a134dfd4888fc3850d22294687cfb3940994c69 (patch)
tree8f23f64df49b8325d87cc82ee9b0ef246d97972d /auto/lib/openssl/conf
parent1d4d2f2c962c33aafdd8f79d9fc50b7cacf05e24 (diff)
downloadnginx-6a134dfd4888fc3850d22294687cfb3940994c69.tar.gz
nginx-6a134dfd4888fc3850d22294687cfb3940994c69.tar.bz2
QUIC: using QUIC API introduced in OpenSSL 3.5.
Similarly to the QUIC API originated in BoringSSL, this API allows to register custom TLS callbacks for an external QUIC implementation. See the SSL_set_quic_tls_cbs manual page for details. Due to a different approach used in OpenSSL 3.5, handling of CRYPTO frames was streamlined to always write an incoming CRYPTO buffer to the crypto context. Using SSL_provide_quic_data(), this results in transient allocation of chain links and buffers for CRYPTO frames received in order. Testing didn't reveal performance degradation of QUIC handshakes, https://github.com/nginx/nginx/pull/646 provides specific results.
Diffstat (limited to 'auto/lib/openssl/conf')
-rw-r--r--auto/lib/openssl/conf10
1 files changed, 8 insertions, 2 deletions
diff --git a/auto/lib/openssl/conf b/auto/lib/openssl/conf
index f4b00ebd6..3068cae36 100644
--- a/auto/lib/openssl/conf
+++ b/auto/lib/openssl/conf
@@ -147,12 +147,18 @@ else
if [ $USE_OPENSSL_QUIC = YES ]; then
- ngx_feature="OpenSSL QUIC support"
+ ngx_feature="OpenSSL QUIC API"
ngx_feature_name="NGX_QUIC"
- ngx_feature_test="SSL_set_quic_method(NULL, NULL)"
+ ngx_feature_test="SSL_set_quic_tls_cbs(NULL, NULL, NULL)"
. auto/feature
if [ $ngx_found = no ]; then
+ ngx_feature="BoringSSL-like QUIC API"
+ ngx_feature_test="SSL_set_quic_method(NULL, NULL)"
+ . auto/feature
+ fi
+
+ if [ $ngx_found = no ]; then
ngx_feature="OpenSSL QUIC compatibility"
ngx_feature_test="SSL_CTX_add_custom_ext(NULL, 0, 0,
NULL, NULL, NULL, NULL, NULL)"