openssl-ech.1ossl - Man Page

ECH key generation

Synopsis

openssl ech [-help] [-verbose] [-in files] [-out file] [-public_name name] [-max_name_len len] [-suite suite_str] [-ech_version version] [-select number] [-text]

Description

The openssl-ech(1) command generates Encrypted Client Hello (ECH) key pairs in the ECHConfig PEM file format as specified in <https://datatracker.ietf.org/doc/rfc9934>.

That format consists of an optional private key in PKCS#8 format and a base64 encoded ECHConfigList containing an entry with a matching public value (and possibly other entries as well).

Options

The following options are supported:

-help

Print out a usage message.

-verbose

Print more verbosely.

-in

Provide an input ECH PEM file for printing or merging. Up to five input files can be provided via use of multiple in arguments.

-out file

Name of output ECHConfig PEM file.  If a new key pair was generated the output file will contain the private key and encoded ECHConfigList.  If one or more input files was provided the output file will contain a set of ECHConfigList values with public keys from the inputs, and no private key(s).

-text

Provide human-readable text output.

-public_name name

The DNS name to use in the "public_name" field of the ECHConfig.

-max_name_len num

Maximum name length field value to use in the ECHConfig.

-suite str

HPKE suite to use in the ECHConfig.

-ech_version version

The ECH version to use in the ECHConfig. Only 0xfe0d is supported in this version.

-select number

Select the N-th ECHConfig/public key from the set of input ECH PEM files and output that.

Notes

Ciphersuites are specified using a comma-separated list of IANA-registered codes/numbers e.g. "-c 0x20,1,3" or a comma-separated list of strings from: - KEMs: p256, p384, p521, x25519, x448 - KDFs: hkdf-sha256, hkdf-sha384, hkdf-sha512 - AEADs: aes128gcm, aes256gcm, chachapoly1305

For example the default is: x25519, hkdf-sha256, aes128gcm See OSSL_HPKE_CTX_new(3) for details.

See Also

openssl(1), openssl-s_client(1), openssl-s_server(1), SSL_set1_echstore(3)

History

This functionality described here was added in OpenSSL 4.0.

Referenced By

openssl.1ossl(1), openssl-ech.1ossl(1), SSL_set1_echstore.3ossl(3).

2026-06-09 4.0.1 OpenSSL