[PATCH 2 of 2] SSL: $ssl_encrypted_hello variable
Maxim Dounin
mdounin at mdounin.ru
Tue Sep 16 22:08:59 UTC 2025
Hello!
On Tue, Sep 09, 2025 at 02:31:42PM +0300, Maxim Dounin wrote:
> # HG changeset patch
> # User Maxim Dounin <mdounin at mdounin.ru>
> # Date 1757416233 -10800
> # Tue Sep 09 14:10:33 2025 +0300
> # Node ID 223d802d990cf5b32517fca34da299b243f37086
> # Parent c28c012ef2a0448356ed0d8428bb373555689c8c
> SSL: $ssl_encrypted_hello variable.
>
> diff --git a/src/event/ngx_event_openssl.c b/src/event/ngx_event_openssl.c
> --- a/src/event/ngx_event_openssl.c
> +++ b/src/event/ngx_event_openssl.c
> @@ -5835,6 +5835,48 @@ ngx_ssl_get_early_data(ngx_connection_t
>
>
> ngx_int_t
> +ngx_ssl_get_encrypted_hello(ngx_connection_t *c, ngx_pool_t *pool, ngx_str_t *s)
> +{
> + s->len = 0;
> +
> +#ifdef OSSL_ECH_FOR_RETRY
> + {
> + char *outer, *inner;
> +
> + /* OpenSSL */
> +
> + outer = NULL;
> + inner = NULL;
> +
> + if (SSL_ech_get1_status(c->ssl->connection, &outer, &inner)
> + == SSL_ECH_STATUS_SUCCESS)
> + {
> + ngx_str_set(s, "1");
> + }
> +
> + if (outer) {
> + OPENSSL_free(outer);
> + }
> +
> + if (inner) {
> + OPENSSL_free(inner);
> + }
> + }
With upcoming fixes to client certificate verification in OpenSSL
ECH branch (https://github.com/openssl/openssl/pull/28555), this
is adjusted as follows:
diff --git a/src/event/ngx_event_openssl.c b/src/event/ngx_event_openssl.c
--- a/src/event/ngx_event_openssl.c
+++ b/src/event/ngx_event_openssl.c
@@ -5841,6 +5841,7 @@ ngx_ssl_get_encrypted_hello(ngx_connecti
#ifdef OSSL_ECH_FOR_RETRY
{
+ int status;
char *outer, *inner;
/* OpenSSL */
@@ -5848,8 +5849,10 @@ ngx_ssl_get_encrypted_hello(ngx_connecti
outer = NULL;
inner = NULL;
- if (SSL_ech_get1_status(c->ssl->connection, &outer, &inner)
- == SSL_ECH_STATUS_SUCCESS)
+ status = SSL_ech_get1_status(c->ssl->connection, &outer, &inner);
+
+ if (status == SSL_ECH_STATUS_SUCCESS
+ || status == SSL_ECH_STATUS_BAD_NAME)
{
ngx_str_set(s, "1");
}
[...]
--
Maxim Dounin
http://mdounin.ru/
More information about the nginx-devel
mailing list