Skip to content

ECH: Supplying an ECHConfigList on the command line does not work #16006

@sutaner

Description

@sutaner

I did this

I am playing around with the ECH support in curl. I did the build steps described in https://github.com/curl/curl/blob/master/docs/ECH.md using a Docker container:

Dockerfile:

FROM alpine:latest

RUN apk add --no-cache \
    git \
    perl \
    build-base \
    linux-headers \
    autoconf \
    automake \
    libtool \
    libpsl \
    libpsl-dev

ENV HOME=/root
WORKDIR $HOME/code

RUN git clone https://github.com/defo-project/openssl \
    && cd openssl \
    && ./config --libdir=lib --prefix=$HOME/code/openssl-local-inst \
    && make -j8 \
    && make install_sw

RUN git clone https://github.com/curl/curl \
    && cd curl \
    && autoreconf -fi \
    && LDFLAGS="-Wl,-rpath,$HOME/code/openssl-local-inst/lib/" ./configure --with-ssl=$HOME/code/openssl-local-inst --enable-ech \
    && make

Doing a curl ECH request using DoH works as expected:

LD_LIBRARY_PATH=$HOME/code/openssl ./src/curl --ech true --doh-url https://one.one.one.one/dns-query https://defo.ie/ech-check.php

Result

...
SSL_ECH_STATUS: success <img src="greentick-small.png" alt="good" /> <br/>
...

But supplying an ECH config via command line argument does NOT work:

LD_LIBRARY_PATH=$HOME/code/openssl ./src/curl --ech ecl:AED+DQA8VgAgACBoEIuIZJ77bgesiZ/k3tarHlAKzNSlmPosivmPykpwBgAEAAEAAQANY292ZXIuZGVmby5pZQAA https
://defo.ie/ech-check.php

Result

...
SSL_ECH_STATUS: not attempted <img src="redx-small.png" alt="bummer" /> <br/>
...

I expected the following

SSL_ECH_STATUS: success when using --ech ecl:...

curl/libcurl version

curl 8.12.0-DEV (aarch64-unknown-linux-musl) libcurl/8.12.0-DEV OpenSSL/3.5.0 libidn2/2.3.7 libpsl/0.21.5
Release-Date: [unreleased]
Protocols: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns mqtt pop3 pop3s rtsp smb smbs smtp smtps telnet tftp ws wss
Features: alt-svc AsynchDNS ECH HSTS HTTPS-proxy IDN IPv6 Largefile NTLM PSL SSL threadsafe TLS-SRP UnixSockets

operating system

Alpine Linux in Docker container (running on macOS 15.3):
Linux 118d1cdf363b 6.10.14-linuxkit #1 SMP Fri Nov 29 17:22:03 UTC 2024 aarch64 Linux

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions