From 38ce793b7c2a306fa57b3b68c6b4e7bec80f897b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=A3=8E=E6=89=87=E6=BB=91=E7=BF=94=E7=BF=BC?= Date: Sat, 10 May 2025 09:21:36 +0000 Subject: [PATCH] Update utls and little change --- transport/internet/tls/ech.go | 16 ++++++++-------- transport/internet/tls/tls.go | 15 ++++++++------- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/transport/internet/tls/ech.go b/transport/internet/tls/ech.go index 498199ff..4f2a597e 100644 --- a/transport/internet/tls/ech.go +++ b/transport/internet/tls/ech.go @@ -27,14 +27,8 @@ func ApplyECH(c *Config, config *tls.Config) error { // for client if len(c.EchConfigList) != 0 { // direct base64 config - if strings.HasPrefix(c.EchConfigList, "base64") { - Base64ECHConfigList := c.EchConfigList[len("base64://"):] - ECHConfigList, err := goech.ECHConfigListFromBase64(Base64ECHConfigList) - if err != nil { - return errors.New("Failed to unmarshal ECHConfigList: ", err) - } - ECHConfig, _ = ECHConfigList.MarshalBinary() - } else { // query config from dns + if strings.Contains(c.EchConfigList, "://") { + // query config from dns parts := strings.Split(c.EchConfigList, "+") if len(parts) == 2 { // parse ECH DNS server in format of "example.com+https://1.1.1.1/dns-query" @@ -53,6 +47,12 @@ func ApplyECH(c *Config, config *tls.Config) error { if err != nil { return err } + } else { + ECHConfigList, err := goech.ECHConfigListFromBase64(c.EchConfigList) + if err != nil { + return errors.New("Failed to unmarshal ECHConfigList: ", err) + } + ECHConfig, _ = ECHConfigList.MarshalBinary() } config.EncryptedClientHelloConfigList = ECHConfig diff --git a/transport/internet/tls/tls.go b/transport/internet/tls/tls.go index 42904be6..b2b0ea6e 100644 --- a/transport/internet/tls/tls.go +++ b/transport/internet/tls/tls.go @@ -128,12 +128,13 @@ func UClient(c net.Conn, config *tls.Config, fingerprint *utls.ClientHelloID) ne func copyConfig(c *tls.Config) *utls.Config { return &utls.Config{ - Rand: c.Rand, - RootCAs: c.RootCAs, - ServerName: c.ServerName, - InsecureSkipVerify: c.InsecureSkipVerify, - VerifyPeerCertificate: c.VerifyPeerCertificate, - KeyLogWriter: c.KeyLogWriter, + Rand: c.Rand, + RootCAs: c.RootCAs, + ServerName: c.ServerName, + InsecureSkipVerify: c.InsecureSkipVerify, + VerifyPeerCertificate: c.VerifyPeerCertificate, + KeyLogWriter: c.KeyLogWriter, + EncryptedClientHelloConfigList: c.EncryptedClientHelloConfigList, } } @@ -179,7 +180,7 @@ func GetFingerprint(name string) (fingerprint *utls.ClientHelloID) { var PresetFingerprints = map[string]*utls.ClientHelloID{ // Recommended preset options in GUI clients - "chrome": &utls.HelloChrome_120, + "chrome": &utls.HelloChrome_131, "firefox": &utls.HelloFirefox_Auto, "safari": &utls.HelloSafari_Auto, "ios": &utls.HelloIOS_Auto,