Open kriskwiatkowski opened 6 years ago
good~
@henrydcase @f4nff @agl @henrydcase @FiloSottile Is there a version of this library or any other Go TLS 1.3 library with E-SNI support available for testing? I would like to setup a censorship circumvention tool for Korea.
There are currently no golang libraries that can be tested for e-sni.
Status of the ecosystem:
Todo:
My initial thought is to include an array of ESNIKeys items. For TLS clients, the first item will be used. For TLS servers, a matching entry will be used. The DNS query should be handled outside crypto/tls, but we could provide some example code in a test (or maybe a separate package).
Alternatively, two functions fields could be created, ClientESNIKeys: ESNIKeys
(which would be a single item) and GetServerESNIKeys: func(record_digest []byte)
. The return values are TBD, but as the server can also provide ESNIKeys in its response for use with future connections, this must somehow be exposed as well.
I'll investigate this later.
The point of this ticket is to support E-SNI:
https://blog.cloudflare.com/encrypted-sni https://tools.ietf.org/html/draft-ietf-tls-esni-01