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@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/9dded063cb74c6941a16ad90b9dd0e06e6... +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 +}