- client.go - ECH test client (uses a fixed ECHConfigsList).
- server.go - ECH test server (uses a fixed set of ECH keys).
- backend.crt, baackend.key - Test certificate and key for "example.com" (the backend server).
- client_facing.crt, backend.key - Test certificate and key for "cloudflare-esni.com" (the client-facing server).
- root.crt - Root certificate for backend.crt and client_facing.crt.
- get_configs.py - Script for fetching the real ECHConfigsList for "crypto.cloudflare.com".
To run the client and server, you'll need to download and build Cloudflare's fork of Go.
git clone https://github.com/cloudflare/go ~/cfgo
cd ~/cfgo/src
./make.bash # You'll need to have Go already installed.
In the directory with the test client and server, do
~/cfgo/bin/go run server.go
and
~/cfgo/bin/go run client.go