This Go project generates Encrypted ClientHello (ECH) key and configuration PEM files according to https://datatracker.ietf.org/doc/draft-farrell-tls-pemesni/
-
Clone the repository:
git clone https://github.com/LeonardWalter/echGenerator.git cd echGenerator -
Build the executable:
go build ./echGenerator -s example.com -i 123 -o mykeys.pem
-s: Server name (required).
-i: ECH ID (uint8). If not provided, a random ID will be generated.
-o: Output file name. If not provided, the output file will be <server_name>.pem.ech
-h: Show help.-----BEGIN PRIVATE KEY-----
MC4CAQAwBQYDK2VuBCIEIG7Wc0oeswNKlNMfNe+gSwaFhVU3GDdoSAzfZGDpSaIm
-----END PRIVATE KEY-----
-----BEGIN ECHCONFIG-----
AEb+DQBCFQAgACAfYnXA4GJHffFuchf/+AMUNodczfzPy8RLtVOjFs7FZwAMAAEAAQABAAIAAQADIAtleGFtcGxlLmNvbQAA
-----END ECHCONFIG-----