Ver Fonte

Merge pull request #705 from adotkhan/missing-tls-version

Added missing supported TLS profiles to getClientHelloVersion
Rod Hynes há 1 ano atrás
pai
commit
fe50266dcc
1 ficheiros alterados com 4 adições e 4 exclusões
  1. 4 4
      psiphon/tlsDialer.go

+ 4 - 4
psiphon/tlsDialer.go

@@ -793,7 +793,7 @@ func SelectTLSProfile(
 	frontingProviderID string,
 	frontingProviderID string,
 	p parameters.ParametersAccessor) (tlsProfile, tlsVersion string, randomizedTLSProfileSeed *prng.Seed, err error) {
 	p parameters.ParametersAccessor) (tlsProfile, tlsVersion string, randomizedTLSProfileSeed *prng.Seed, err error) {
 
 
-	for {
+	for i := 0; i < 1000; i++ {
 		tlsProfile, tlsVersion, randomizedTLSProfileSeed, err = selectTLSProfile(requireTLS12SessionTickets, isFronted, frontingProviderID, p)
 		tlsProfile, tlsVersion, randomizedTLSProfileSeed, err = selectTLSProfile(requireTLS12SessionTickets, isFronted, frontingProviderID, p)
 		if err != nil {
 		if err != nil {
 			return "", "", nil, errors.Trace(err)
 			return "", "", nil, errors.Trace(err)
@@ -809,6 +809,7 @@ func SelectTLSProfile(
 
 
 		return
 		return
 	}
 	}
+	return "", "", nil, errors.TraceNew("Failed to select a TLS profile")
 }
 }
 
 
 // selectTLSProfile is a helper that picks and returns a TLS profile at random
 // selectTLSProfile is a helper that picks and returns a TLS profile at random
@@ -1011,14 +1012,13 @@ func getClientHelloVersion(
 
 
 	switch utlsClientHelloID {
 	switch utlsClientHelloID {
 
 
-	// TODO! missing: iOS-13, iOS-14
-
 	case utls.HelloIOS_11_1, utls.HelloIOS_12_1,
 	case utls.HelloIOS_11_1, utls.HelloIOS_12_1,
 		utls.HelloChrome_58, utls.HelloChrome_62,
 		utls.HelloChrome_58, utls.HelloChrome_62,
 		utls.HelloFirefox_55, utls.HelloFirefox_56:
 		utls.HelloFirefox_55, utls.HelloFirefox_56:
 		return protocol.TLS_VERSION_12, nil
 		return protocol.TLS_VERSION_12, nil
 
 
-	case utls.HelloChrome_70, utls.HelloChrome_72,
+	case utls.HelloIOS_13, utls.HelloIOS_14,
+		utls.HelloChrome_70, utls.HelloChrome_72,
 		utls.HelloChrome_83, utls.HelloChrome_96,
 		utls.HelloChrome_83, utls.HelloChrome_96,
 		utls.HelloChrome_102, utls.HelloChrome_120,
 		utls.HelloChrome_102, utls.HelloChrome_120,
 		utls.HelloChrome_120_PQ, utls.HelloChrome_106_Shuffle,
 		utls.HelloChrome_120_PQ, utls.HelloChrome_106_Shuffle,