Unverified Commit 2d6258a9 authored by hax0r31337's avatar hax0r31337 Committed by GitHub
Browse files

fix: grease ech parrot for chrome 120 (#271)

parent ed573b3a
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -9,6 +9,7 @@ import (
	"sync"

	"github.com/cloudflare/circl/hpke"
	"github.com/refraction-networking/utls/dicttls"
)

// Unstable API: This is a work in progress and may change in the future. Using
@@ -234,3 +235,19 @@ func (*UnimplementedECHExtension) MarshalClientHello(*UConn) error {
func (*UnimplementedECHExtension) mustEmbedUnimplementedECHExtension() {
	panic("mustEmbedUnimplementedECHExtension() is not implemented")
}

func BoringGREASEECH() *GREASEEncryptedClientHelloExtension {
	return &GREASEEncryptedClientHelloExtension{
		CandidateCipherSuites: []HPKESymmetricCipherSuite{
			{
				KdfId:  dicttls.HKDF_SHA256,
				AeadId: dicttls.AEAD_AES_128_GCM,
			},
			{
				KdfId:  dicttls.HKDF_SHA256,
				AeadId: dicttls.AEAD_CHACHA20_POLY1305,
			},
		},
		CandidatePayloadLens: []uint16{128, 160, 192, 224}, // +16: 144, 176, 208, 240
	}
}
+2 −34
Original line number Diff line number Diff line
@@ -726,23 +726,7 @@ func utlsIdToSpec(id ClientHelloID) (ClientHelloSpec, error) {
					CertCompressionBrotli,
				}},
				&ApplicationSettingsExtension{SupportedProtocols: []string{"h2"}},
				&GREASEEncryptedClientHelloExtension{
					CandidateCipherSuites: []HPKESymmetricCipherSuite{
						{
							KdfId:  dicttls.HKDF_SHA256,
							AeadId: dicttls.AEAD_AES_128_GCM,
						},
						{
							KdfId:  dicttls.HKDF_SHA256,
							AeadId: dicttls.AEAD_AES_256_GCM,
						},
						{
							KdfId:  dicttls.HKDF_SHA256,
							AeadId: dicttls.AEAD_CHACHA20_POLY1305,
						},
					},
					CandidatePayloadLens: []uint16{128, 160}, // +16: 144, 176
				},
				BoringGREASEECH(),
				&UtlsGREASEExtension{},
			}),
		}, nil
@@ -816,23 +800,7 @@ func utlsIdToSpec(id ClientHelloID) (ClientHelloSpec, error) {
					CertCompressionBrotli,
				}},
				&ApplicationSettingsExtension{SupportedProtocols: []string{"h2"}},
				&GREASEEncryptedClientHelloExtension{
					CandidateCipherSuites: []HPKESymmetricCipherSuite{
						{
							KdfId:  dicttls.HKDF_SHA256,
							AeadId: dicttls.AEAD_AES_128_GCM,
						},
						{
							KdfId:  dicttls.HKDF_SHA256,
							AeadId: dicttls.AEAD_AES_256_GCM,
						},
						{
							KdfId:  dicttls.HKDF_SHA256,
							AeadId: dicttls.AEAD_CHACHA20_POLY1305,
						},
					},
					CandidatePayloadLens: []uint16{128, 160}, // +16: 144, 176
				},
				BoringGREASEECH(),
				&UtlsGREASEExtension{},
			}),
		}, nil