Skip to content

Comments

feat: add support for ECH when using custom clienthello specs#331

Merged
mingyech merged 3 commits intomasterfrom
ech
Apr 20, 2025
Merged

feat: add support for ECH when using custom clienthello specs#331
mingyech merged 3 commits intomasterfrom
ech

Conversation

@mingyech
Copy link
Member

@mingyech mingyech commented Mar 8, 2025

This PR enables ECH when the user provides a ClientHello spec that has an extension implementing the EncryptedClientHelloExtension interface (such as the GREASEEncryptedClientHelloExtension currently for all the browsers) and follows the standard library’s ECH API of providing the EncryptedClientHelloConfigList in the config.

When ECH is enabled, we generate another ClientHello as the ClientHelloInner using the standard library’s handshake marshaling functions and encode it in our ClientHelloOuter. Some extensions are substituted in the OuterExtensions list, in which case the uTLS generated values in the ClientHelloOuter will be used. We reorder the OuterExtensions list according to the structure in the outer ClientHello spec.

@mingyech mingyech merged commit f1c485f into master Apr 20, 2025
3 checks passed
@mingyech mingyech deleted the ech branch April 21, 2025 00:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant