[tor-commits] [pluggable-transports/snowflake] 04/13: Add name to utls client hello id

gitolite role git at cupani.torproject.org
Wed Mar 16 09:14:12 UTC 2022


This is an automated email from the git hooks/post-receive script.

shelikhoo pushed a commit to branch main
in repository pluggable-transports/snowflake.

commit c1c3596cf8bbc87b180e6d916da9515e27609969
Author: Max Bittman <bittmanmax at gmail.com>
AuthorDate: Thu Feb 10 11:46:58 2022 +0000

    Add name to utls client hello id
---
 common/utls/client_hello_id.go | 38 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 38 insertions(+)

diff --git a/common/utls/client_hello_id.go b/common/utls/client_hello_id.go
new file mode 100644
index 0000000..e423cf3
--- /dev/null
+++ b/common/utls/client_hello_id.go
@@ -0,0 +1,38 @@
+package utls
+
+import (
+	"errors"
+	utls "github.com/refraction-networking/utls"
+	"strings"
+)
+
+// ported from https://github.com/max-b/snowflake/commit/9dded063cb74c6941a16ad90b9dd0e06e618e55e
+var clientHelloIDMap = map[string]utls.ClientHelloID{
+	// No HelloCustom: not useful for external configuration.
+	// No HelloRandomized: doesn't negotiate consistent ALPN.
+	"hellorandomizedalpn":   utls.HelloRandomizedALPN,
+	"hellorandomizednoalpn": utls.HelloRandomizedNoALPN,
+	"hellofirefox_auto":     utls.HelloFirefox_Auto,
+	"hellofirefox_55":       utls.HelloFirefox_55,
+	"hellofirefox_56":       utls.HelloFirefox_56,
+	"hellofirefox_63":       utls.HelloFirefox_63,
+	"hellofirefox_65":       utls.HelloFirefox_65,
+	"hellochrome_auto":      utls.HelloChrome_Auto,
+	"hellochrome_58":        utls.HelloChrome_58,
+	"hellochrome_62":        utls.HelloChrome_62,
+	"hellochrome_70":        utls.HelloChrome_70,
+	"hellochrome_72":        utls.HelloChrome_72,
+	"helloios_auto":         utls.HelloIOS_Auto,
+	"helloios_11_1":         utls.HelloIOS_11_1,
+	"helloios_12_1":         utls.HelloIOS_12_1,
+}
+
+var errNameNotFound = errors.New("client hello name is unrecognized")
+
+func NameToUTlsID(name string) (utls.ClientHelloID, error) {
+	normalizedName := strings.ToLower(name)
+	if id, ok := clientHelloIDMap[normalizedName]; ok {
+		return id, nil
+	}
+	return utls.ClientHelloID{}, errNameNotFound
+}

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the tor-commits mailing list