浏览代码

Fix uTLS randomized fingerprint

世界 2 年之前
父节点
当前提交
d24d3b26dc
共有 1 个文件被更改,包括 12 次插入8 次删除
  1. 12 8
      common/tls/utls_client.go

+ 12 - 8
common/tls/utls_client.go

@@ -165,7 +165,10 @@ func NewUTLSClient(router adapter.Router, serverAddress string, options option.O
 	return &UTLSClientConfig{&tlsConfig, id}, nil
 	return &UTLSClientConfig{&tlsConfig, id}, nil
 }
 }
 
 
-var randomFingerprint utls.ClientHelloID
+var (
+	randomFingerprint     utls.ClientHelloID
+	randomizedFingerprint utls.ClientHelloID
+)
 
 
 func init() {
 func init() {
 	modernFingerprints := []utls.ClientHelloID{
 	modernFingerprints := []utls.ClientHelloID{
@@ -176,6 +179,13 @@ func init() {
 		utls.HelloIOS_Auto,
 		utls.HelloIOS_Auto,
 	}
 	}
 	randomFingerprint = modernFingerprints[rand.Intn(len(modernFingerprints))]
 	randomFingerprint = modernFingerprints[rand.Intn(len(modernFingerprints))]
+
+	weights := utls.DefaultWeights
+	weights.TLSVersMax_Set_VersionTLS13 = 1
+	weights.FirstKeyShare_Set_CurveP256 = 0
+	randomizedFingerprint = utls.HelloRandomized
+	randomizedFingerprint.Seed, _ = utls.NewPRNGSeed()
+	randomizedFingerprint.Weights = &weights
 }
 }
 
 
 func uTLSClientHelloID(name string) (utls.ClientHelloID, error) {
 func uTLSClientHelloID(name string) (utls.ClientHelloID, error) {
@@ -199,13 +209,7 @@ func uTLSClientHelloID(name string) (utls.ClientHelloID, error) {
 	case "random":
 	case "random":
 		return randomFingerprint, nil
 		return randomFingerprint, nil
 	case "randomized":
 	case "randomized":
-		weights := utls.DefaultWeights
-		weights.TLSVersMax_Set_VersionTLS13 = 1
-		weights.FirstKeyShare_Set_CurveP256 = 0
-		randomized := utls.HelloRandomized
-		randomized.Seed, _ = utls.NewPRNGSeed()
-		randomized.Weights = &weights
-		return randomized, nil
+		return randomizedFingerprint, nil
 	default:
 	default:
 		return utls.ClientHelloID{}, E.New("unknown uTLS fingerprint: ", name)
 		return utls.ClientHelloID{}, E.New("unknown uTLS fingerprint: ", name)
 	}
 	}